HTTP请求模型字符串对转

//将QueryString参数转换为Model
public static T GetQueryStringModel<T>(HttpRequestBase HttpRequestBase)
{
    Type type = typeof(T);
    T Tmodel = (T)type.Assembly.CreateInstance(type.FullName);
    PropertyInfo[] propertys = Tmodel.GetType().GetProperties();
    foreach (PropertyInfo property in propertys)
    {
        if (HttpRequestBase.QueryString[property.Name] == null) { }
        else property.SetValue(Tmodel, HttpRequestBase.QueryString[property.Name].ToString(), null);
    }
    return Tmodel;
}
//将URL参数转换为Model
public static T GetFormKeyModel<T>(HttpRequestBase HttpRequestBase)
{
    Type type = typeof(T);
    T Tmodel = (T)type.Assembly.CreateInstance(type.FullName);
    PropertyInfo[] propertys = Tmodel.GetType().GetProperties();
    foreach (PropertyInfo property in propertys)
    {
        if (HttpRequestBase.Form[property.Name] == null) { }
        else property.SetValue(Tmodel, HttpRequestBase.Form[property.Name].ToString(), null);
    }
    return Tmodel;
}
//参数处理为URL形式
public static string ModelToUriParam<T>(T obj, string url = "")
{
    PropertyInfo[] propertis = obj.GetType().GetProperties();
    StringBuilder sb = new StringBuilder();
    sb.Append(url);
    foreach (var p in propertis)
    {
        var v = p.GetValue(obj, null);
        if (v == null) continue;
        sb.Append(p.Name);
        sb.Append("=");
        sb.Append(v.ToString());
        sb.Append("&");
    }
    sb.Remove(sb.Length - 1, 1);
    return sb.ToString();
}
posted @ 2019-11-11 02:17  全栈攻城师  阅读(760)  评论(0)    收藏  举报