zoukankan      html  css  js  c++  java
  • modelbinder机制原理

    ModelBinder介绍

    一.问题描述

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

     

     

    二.解决方案

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

    三、下面是一个简单的案例的操作步骤

    (一)建立Mvc项目

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

     

     

     

     

     

     

     

     

     

     

     

    (二)建立数据库

    一般数据库应该放在AppData文件夹下,当然,你也可以放在其他地方

     

     

    一般把ID设为主键,标示规范设为true

     

     

     

     

    (三)根据数据库生成Model

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

     

     

     

     

    这一步需要安装EFTools6.1.0ForVS2012

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

    也可以选择来自数据库的CodeFirst选项,点击下一步,选择数据库表等,生成对应的Model

     

     

     

    (四)添加Policy模型

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

     

     

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

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

     

     

     

     

    (六)添加Policy控制器

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

     

     

     

    (添加Policy视图

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

     

     

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

     

     

    (八)运行查看

    F5运行查看

     

     

     

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

     

     

     

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

     

     

  • 相关阅读:
    ZJOI 2019 划水记
    【博弈论】浅谈泛Nim游戏
    HZNU ACM一日游 2019.3.17 【2,4,6-三硝基甲苯(TNT)】
    BZOJ 1008 越狱 组合数学
    BZOJ 1036 树的统计Count 树链剖分模板题
    BZOJ 1012 最大数maxnumber 线段树
    BZOJ 1001 狼抓兔子 平面图的最小割
    SGU---107 水题
    欧拉回路模板
    hdu-3397 Sequence operation 线段树多种标记
  • 原文地址:https://www.cnblogs.com/littlerain1991/p/3781664.html
Copyright © 2011-2022 走看看