把URL传递参数转变成自定义实体方法

先定义下要获取的实体:

  public class InputClass
    {
        public long Id { get; set; }
        public int Status { get; set; }

        public DateTime UdpateTime { get; set; }
    }

将url参数转换成对应字典类型

       private Dictionary<string, string> GetInputNameValues(string value)
        {
            var array = value.Split(new char[] { ‘&‘ }, StringSplitOptions.RemoveEmptyEntries);
            char[] split = new char[] { ‘=‘ };
            Dictionary<string, string> result = new Dictionary<string, string>(array.Length);
            foreach (var item in array)
            {
                var tempArr = item.Split(split, StringSplitOptions.RemoveEmptyEntries);
                if (tempArr.Length == 2)
                {
                    result.Add(tempArr[0], tempArr[1]);
                }
            }
            return result;
        }

将实体类转换字典方法:

        private Dictionary<string, System.Reflection.PropertyInfo> GetProperty(Type type)
        {
            var pro = type.GetProperties();
            var result = new Dictionary<string, PropertyInfo>(pro.Length);
            var jsonPropertyType = typeof(JsonPropertyAttribute);
            foreach (var item in pro)
            {
                var name = item.Name;
                var jsonpList = (JsonPropertyAttribute[])(item.GetCustomAttributes(jsonPropertyType, false));
                if (jsonpList.Length > 0)
                {
                    var jsonp = jsonpList.First();
                    JsonPropertyAttribute att = new JsonPropertyAttribute();
                    name = jsonp.PropertyName;
                }
                result.Add(name, item);
            }
            return result;
        }

主方法:

            var type = typeof(InputClass);
            string inputString = "Id=1111&Status=1&UdpateTime=2015-5-9";
            var model = new InputClass();
            var nameValues = GetInputNameValues(inputString);
            var propertyKeys = GetProperty(type);
            foreach (var item in propertyKeys)
            {
                string value;
                if (nameValues.TryGetValue(item.Key, out value))
                {
                    item.Value.SetValue(model, Convert.ChangeType(value, item.Value.PropertyType));
                }
            }
            return model;

返回的model 就是封装好的实体。

时间: 2024-10-10 23:50:30

把URL传递参数转变成自定义实体方法的相关文章

js获取url传递参数

js获取url传递参数 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET函数: <Script language="javascript"> function GetRequest() { var url = location.search; //获取url中"?"符后的字串 var theRequest = new Object(); if (ur

【Django】url传递参数

1.  url传递参数的特殊字符 在压缩后,可能出现  +  -  = 空格  这类特殊字符,需要在传递前进行url编码  urllib.enquote(string) 获取参数后 urllib.unquote(string) 2.  字符的编解码 zlib.compress(base64.encode(string)) base64.decode(zlib.decompress(string))

js获取url传递参数(转)

js获取url传递参数 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET函数: <Script language="javascript"> function GetRequest() {     var url = location.search; //获取url中"?"符后的字串    var theRequest = new Object();

Django URL传递参数的方法总结

1 无参数情况 配置URL及其视图如下: 1 2 3 4 (r'^hello/$', hello)   def hello(request): return HttpResponse("Hello World") 访问http://127.0.0.1:8000/hello,输出结果为“Hello World” 2 传递一个参数 配置URL及其视图如下,URL中通过正则指定一个参数: 1 2 3 4 (r'^plist/(.+)/$', helloParam)   def helloPa

js 中利用url传递参数的编码问题

今天犯二了,解析url传递的参数怎么都不对,将结果log出来,发现是编码的问题,然而,我居然忘了给怎么编码解码....所以,有必要记一下,下次犯二就不用去翻别人写的了 传递url时,将要传递的参数使用:encodeURI编码 $(".sidebar >ul > .side-li").click(function () { /*----发送一个查询商品,相应的名字,*/ // console.log($(this).find("h5").text());

JavaScript中url 传递参数(特殊字符)解决方法

有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码 十六进制值1. + URL 中+号表示空格 %2B2. 空格 URL中的空格可以用+号或者编码 %203. / 分隔目录和子目录 %2F4. ? 分隔实际的 URL 和参数 %3F5. % 指定特殊字符 %256. # 表示书签 %237. & URL 中指定的参数间的分隔符 %268. = URL 中指定参数的值 %3D

Reporting Service Url传递参数应用

参数传递格式:http://servername/reportserver?/rptcenter/HRReport&rs:Format=EXCEL&rs:Command=Render&rp:RequestNo=applyno 报表接收:打开报表数据-->参数-->新增参数名为"RequestNo"的参数-->Done ********************************************更多参数说明**************

html5网页获取url传递参数

作为一个前端,需要向后台传递参数进行测试,但是后台既不是phh又不是Jsp,是一种自己不熟悉短时间无法掌握的语言,为了测试方便,如果只是简单的参数,非数据流的情况下可以通过url直接向HTML页面传递,相关代码如下 <!doctype html><html><head> <meta chareset="utf-8"> </head><body><script> var paramArr = []; //

url 传递参数(特殊字符)解决方法

有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码       十六进制值 1. + URL 中+号表示空格 %2B 2. 空格 URL中的空格可以用+号或者编码 %20 3. / 分隔目录和子目录 %2F 4. ? 分隔实际的 URL 和参数 %3F 5. % 指定特殊字符 %25 6. # 表示书签 %23 7. & URL 中指定的参数间的分隔符 %26 8. = URL 中指定参数的值 %3D 例如: ht