把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 就是封装好的实体。
把URL传递参数转变成自定义实体方法的更多相关文章
- PHP获取不到url传递参数中#&等特殊字符解决方法
有些符号在URL中是不能直接传递的,无法传入PHP处理,比如#&等符号,通过$_GET是获取不到的,比如一个域名https://localhost/url.php?url=yangyufei+ ...
- Spring MVC(六)--通过URL传递参数
URL传递参数时,格式是类似这样的,/param/urlParam/4/test,其中4和test都是参数,这就是所谓的Restful风格,Spring MVC中通过注解@RequestMapping ...
- 【Django】url传递参数
1. url传递参数的特殊字符 在压缩后,可能出现 + - = 空格 这类特殊字符,需要在传递前进行url编码 urllib.enquote(string) 获取参数后 urllib.un ...
- 8)django-示例(url传递参数)
url传递参数有两种,一个是通过普通分组方式,一个是通过带命名分组方式 1.传递方式 1)普通分组方式,传递参数顺序是严格的.如下例子 url(r'^detail-(\d+)-(\d+).html', ...
- html5页面与android页面之间通过url传递参数
html5页面与android页面之间可以通过url传递参数,android将参数放在htm5的url ?后面,js获取url ?号后面的参数. 方法一: <scrīpt> /* 用途 ...
- 用URL传递参数
用URL传递参数,在园子里找到一篇文章解决了自己的问题,地址如下:http://www.cnblogs.com/lolicon/archive/2009/01/19/1378408.html
- 关于Url传递参数
Url传递参数时,后台取值会直接取等号后面的内容,包括引号在内. 比如: http://localhost:8080/user?name='admin' 这是错误的做法,后台获取到的参数是包括引号 ...
- vue-router 利用url传递参数
vue-router 利用url传递参数 :冒号的形式传递参数 在路由配置文件里以:冒号的形式传递参数,这就是对参数的绑定. 1. 在配置文件里以冒号的形式设置参数.我们在/src/router/i ...
- Vue-router 第5节 vue-router利用url传递参数
Vue-router 第5节 vue-router利用url传递参数 目录 Vue-router 第5节 vue-router利用url传递参数 第5节 vue-router利用url传递参数 冒号的 ...
随机推荐
- springMVC get请求及其请求地址写法
今天,需要写一个接口,写完之后,测试的时候发线一直报404错误,不知道为什么报错.应该是get请求地址的问题,get请求有两个参数,改为一个参数的时候是好用的,可能那种方式不适合写两个参数的get请求 ...
- 将SCOM2007代理升级到 System Center 2012 SP1
使用以下过程可以升级到 System Center 2012 Service Pack 1 (SP1), Operations Manager工程师.您应首先验证代理程序满足最小受支持的配置.有关详细 ...
- fb设置viewSourceURL
- 【01】视C++为一个语言联邦
1.C++是个多重范型编程语言:面向过程,面向对象,函数编程,泛型形式,元编程形式. 2.C++是一个语言联邦,包括四个次语言: a.C语言,C++以C语言为基础.但C语言有下列局限:没有模版,没有异 ...
- C#/Access-数据库获取自动编号的最大值
//conStrSQL你改成你的access,我这里用的SQL2005string conStrSQL = "Data Source=xx.xx.xx.xx;Initial Catalog= ...
- [React Fundamentals] Component Lifecycle - Mounting Usage
The previous lesson introduced the React component lifecycle mounting and unmounting. In this lesson ...
- MySQL和PostgreSQL 导入数据对照
在虚拟机上測评了下MySQL 和 PostgreSQL 的各种LOAD FILE方式以及时间. 由于是虚拟机上的測评,所以时间仅仅做參考,不要太较真, 看看就好了.MySQL 工具: 1. 自带 ...
- Js_分页
public ActionResult Index(int? pageIndex) { List<string> data = new List<string>(); ; i ...
- 你不知道的 Javascript
作用域 词法作用域:编译阶段确定(欺骗词法作用域 eval with) function foo(str){ "use strict" eval(str) console.log( ...
- Excel导入导出帮助类
/// <summary> /// Excel导入导出帮助类 /// 记得引入 NPOI /// 下载地址 http://npoi.codeplex.com/rele ...