知识大全 ASP.NET MVC 4框架揭秘:Action的执行(1)[2]
Posted 框架
篇首语:非淡泊无以明志,非宁静无以致远。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET MVC 4框架揭秘:Action的执行(1)[2]相关的知识,希望对你有一定的参考价值。
ASP.NET MVC 4框架揭秘:Action的执行(1)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
如下面的代码片段所示 绑定到参数上的数据具有三个来源 HTTP POST Form RouteData的Values和DataTokens属性 它们都是字典结构的数据集合 如果参数类型为字符串或者简单的值类型 我们可以直接根据参数名称和Key进行匹配 对于复杂类型(比如之前例子中定义的包含Controller和Action名称的数据类型SimpleModel) 则通过反射根据类型创建新的对象 并根据属性名称与Key的匹配关系对相应的属性进行赋值
public class DefaultModelBinder : IModelBinder
public object BindModel(ControllerContext controllerContext
stringmodelName Type modelType)
if (modelType IsValueType || typeof(string) == modelType)
object instance;
if (GetValueTypeInstance(controllerContext modelName
modelType out instance))
return instance;
;
returnActivator CreateInstance(modelType)
objectmodelInstance = Activator CreateInstance(modelType)
foreach (PropertyInfo property in modelType GetProperties())
if (!property CanWrite || (!property PropertyType IsValueType
&&property PropertyType!=typeof(string)))
continue;
objectpropertyValue;
if (GetValueTypeInstance(controllerContext property Name
property PropertyType out propertyValue))
property SetValue(modelInstance propertyValue null)
returnmodelInstance;
private boolGetValueTypeInstance(ControllerContext controllerContext
stringmodelName Type modelType out object value)
var form = HttpContext Current Request Form;
string key;
if (null != form)
key = form AllKeys FirstOrDefault(k =>string Compare(k
modelName true) == )
if (key != null)
value = Convert ChangeType(form[key] modelType)
return true;
key = controllerContext RequestContext RouteData Values
Where(item =>string Compare(item Key modelName true) == )
Select(item =>item Key) FirstOrDefault()
if (null != key)
value = Convert ChangeType(controllerContext RequestContext
RouteData Values[key] modelType)
return true;
key = controllerContext RequestContext RouteData DataTokens
Where(item =>string Compare(item Key modelName true) == )
Select(item =>item Key) FirstOrDefault()
if (null != key)
value = Convert ChangeType(controllerContext RequestContext
RouteData DataTokens[key] modelType)
return true;
value = null;
return false;
返回目录 ASP NET MVC 框架揭秘
编辑推荐
ASP NET开发培训视频教程
Microsoft NET框架程序设计视频教程
Java程序性能优化 让你的Java程序更快 更稳定
Visual C++音频/视频技术开发与实战
cha138/Article/program/net/201311/16105相关参考
知识大全 ASP.NET MVC 4框架揭秘:Action的执行(1)[1]
ASP.NETMVC4框架揭秘:Action的执行(1)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
ASP.NETMVC4框架揭秘 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章ASPNET+
ASP.NETMVC4框架揭秘:默认实现 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nbs
ASP.NETMVC4框架揭秘:总体设计 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第章&n
知识大全 ASP.NET MVC 4框架揭秘:ControllerFactory[2]
ASP.NETMVC4框架揭秘:ControllerFactory[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
知识大全 ASP.NET MVC 4框架揭秘:ControllerFactory[1]
ASP.NETMVC4框架揭秘:ControllerFactory[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们
知识大全 ASP.NET MVC 4框架揭秘:Controller(1)
ASP.NETMVC4框架揭秘:Controller(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 ASP.NET MVC 4框架揭秘:Controller(3)
ASP.NETMVC4框架揭秘:Controller(3) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 ASP.NET MVC 4框架揭秘:Controller(2)[2]
ASP.NETMVC4框架揭秘:Controller(2)[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
知识大全 ASP.NET MVC 4框架揭秘:Controller(2)[1]
ASP.NETMVC4框架揭秘:Controller(2)[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起