首页 咨询中心 IT学堂
MVC 模型绑定介绍
在WebForm,获取提交表单的值一般都是Request.Form["Title"]这样的方式。在MVC中,提供了模型绑定机制。让后台获取表单或Url中的参数变得更加简单。 

一、基本模型绑定 

  你可以直接在参数中用字符串,整型变量,实体或者是List<实体>的方式获取表单提交的参数。 

  参数中的这些东西都是与表单中的Html控件的name属性一一对应的。 

        public ActionResult PersonAdd(int Id) 
        { 
            return View(); 
        } 

  例如以上代码,它能够匹配Url中的Id参数。如以下两种方法Id都能够匹配到1 

  http://localhost/Home/PersonAdd/1 
  http://localhost/Home/PersonAdd?Id=1 

  在例如如下代码: 

        public ActionResult PersonAdd(string Name) 
        { 
            return View(); 
        } 

  它能够匹配到表单中提交的张三: 

<input type="text" name="Name" value="张三" /> 

  也能够匹配到Get请求的路径参数: 

http://localhost/Home/PersonAdd?Name=张三 

  如果是用实体,则会检查该实体的属性名与表单中name属性中对应的标签的值。 

  例如有如下实体: 

    public class Person_Model 
    { 
        public int Id { get; set; } 

        public string Name { get; set; } 
    } 

  在Controller中的参数填写如下: 


复制代码 
        [HttpPost] 
        public ActionResult PersonAdd(Person_Model model) 
        { 
            if (ModelState.IsValid)  //此处仅作演示,不考虑安全性 
            { 
                //插入数据库省略 
                return Redirect("/Home/PersonManager"); 
            } 
            return View(); 
        } 

复制代码 

  这样的话,模型绑定器会自动检查该实体的属性与Name一一对应的标签并绑定。如下表单的值将被绑定到model实体的属性中。 

  <input type="hidden" name="Id" value="1" /> 
  <input type="text" name="Name" value="张三" /> 

二、显式模型绑定 

  UpdateModel与TryUpdateModel都用于显示模型绑定。如果绑定期间出现错误或者模型是无效的。 

  UpdateModel将抛出一个异常。因此UpdateModel要用try catch语句块包起来,而TryUpdateModel不会抛出异常,而是返回一个布尔类型的值,true表示绑定成功,false表示绑定失败。如: 


复制代码 
        [HttpPost] 
      
上一篇 .net mvc 网站利用Bind模型绑定更新部分字段
上一篇 .net mvc数据库操作添加数据的几中方法
本方链接: http://www.web258.cn/article/show/i1348.html
ARTICLE 相关推荐