你的位置:首页 > 软件开发 > ASP.net > 第22章 模型绑定

第22章 模型绑定

发布时间:2015-07-23 09:00:16
模型绑定(Model Binding)是指用浏览器以HTTP请求方式发送的数据来创建.NET对象的过程。  动作方法的参数依赖于模型绑定过程(通过模型绑定器来实现)。利用整个HTTP请求所携带的数据(用户在表单中输入的数据、路由数据、请求URL中的查询字符串、请求中上传的文件)构 ...

    模型绑定(Model Binding)是指用浏览器以HTTP请求方式发送的数据来创建.NET对象的过程。

  动作方法的参数依赖于模型绑定过程(通过模型绑定器来实现)。利用整个HTTP请求所携带的数据(用户在表单中输入的数据、路由数据、请求URL中的查询字符串、请求中上传的文件)构造动作方法所需要参数对象的过程。

    模型绑定过程(模型绑定器要做的事):

      1.检测确认目标对象(要创建的对象,指动作方法的参数)的名称和类型;(动作方法参数的名称和类型

      2.通过对象名称查找数据源(请求),并找到可用数据(通常是字符串);(在请求数据中找到名称匹配的字符串数据

      3.根据对象类型将找到的数据值转换成目标类型;(将字符串类型数据转换成动作方法参数的类型

      4.通过对象名称、对象类型、和这种经过处理的数据来构造目标对象;(利用上述数据构造一个动作方法参数的对象

      5.将构造好的对象传送给动作调用器,并由动作调用器将对象注入到目标动作方法中去。(将目标对象传递给动作方法

        调用器:IActionInvoker

        默认调用器:ControllerActionInvoker

        模型绑定器:IModelBinder

        默认模型绑定器:DefaultModelBinder

        请求:Request

        请求数据:Request.Form、Request.Files、RouteData.Values、Request.QueryString

        模型:Model

        模型属性:Model.Name

        属性类型:String

        控制器:Controller

        动作方法:Action

        动作参数:ActionParam

        参数类型:get='_blank'>string

        参数值:"aa"

  一、默认模型绑定器

 DefaultModelBinder类查找参数数据的顺序(找到便停止)

数据源描述示例
Request.Form由用户在HTML的表单中提供(填写)的数据Request.Form["id"]
RouteData.values用应用程序路由获得的值RouteData.Values["id"]
Request.QueryString包含在请求URL中的查询字符串的部分数据Request.QueryString["id"]
Request.Files请求中上传的文件Request.Files["id"]

    1.复合类型绑定:当动作方法的参数是复合类型时(不能用TypeConverter类进行转换的属性(简单类型:string、int....)),用反射来获取public属性集,然后依次绑定。

      (1)易于绑定的HTML:

      

  <div>@Html.LabelFor(m => m.HomeAddress.City)      @Html.EditorFor(m => m.HomeAddress.City)  </div>  

    <div><label for="HomeAddress_City">城市</label>

原标题:第22章 模型绑定

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录