modelbinder机制原理

ModelBinder介绍

一.问题描述

当运行一个Mvc时,你控制器中的Action方法须要参数数据;而这些参数数据包含在HTTP请求中,包括表单上的ValueURL中的参数等。但问题是控制器中的Action方法和表单数据是怎么关联的呢?数据库

 

 

二.解决方案

微软ModelBinder的功能就是将这些个表单上的ValueURL中的参数换成对象,而后将这些对象绑定到Action的参数上面。如图:服务器

3、下面是一个简单的案例的操做步骤

(一)创建Mvc项目

   首先创建一个Mvc应用程序,具体步骤如图:spa

 

 

 

 

 

 

 

 

 

 

 

(二)创建数据库

通常数据库应该放在AppData文件夹下,固然,你也能够放在其余地方对象

 

 

通常把ID设为主键,标示规范设为trueget

 

 

 

 

(三)根据数据库生成Model

右键Models选择添加新建项,选择数据中的实体数据模型源码

 

 

 

 

这一步须要安装EFTools6.1.0ForVS2012

(下载地址:http://pan.baidu.com/s/1y82vG

也能够选择来自数据库的CodeFirst选项,点击下一步,选择数据库表等,生成对应的Modelit

 

 

 

(四)添加Policy模型

右键单击Models文件夹,选择添加类,来添加Policy实体类。具体代码如图io

 

 

(五)添加User控制器(包含模板,模型和数据上下文)

添加User控制器,选择包含读/写操做和视图的MVC控制器,模型类和数据上下文,会自动在Control中生成相关增删查改的方法并在视图中生成相应的视图。模板

 

 

 

 

(六)添加Policy控制器

添加空的Policy控制器,编写Edit方法。class

 

 

 

(添加Policy视图

Edit方法中右键选择添加视图,选择模型类Policy,选择Edit模板,会在视图中生成与Edit相关的Html代码。

 

 

对于复合实体,系统默认不会生成相应代码,须要手动添加。

 

 

(八)运行查看

F5运行查看

 

 

 

首先, 在MVC中, 当一个请求发送到服务器,先是要通过Route匹配, 找到对应的Controller和Action, 而后才是构建Action中的参数,也就是Model Binder的过程

 

 

 

附录:源码下载地址http://pan.baidu.com/s/1iZxU2

相关文章
相关标签/搜索