在Parameter中使用UpdateModel和ModelBinding的区别

时间:2009-05-29 04:46:29

标签: asp.net-mvc

为什么我会在这里使用UpdateModel?

一个。

 public ActionResult SubmitPerson(Person person)
 {       }

 public ActionResult SubmitPerson(FormCollection form)
{
    Person person=new Person();
    UpdateModel<IFilter>(person,form)
}

1 个答案:

答案 0 :(得分:2)

最终取决于您的实施要求。

在A.中,将创建一个Person对象的新实例,模型绑定器将尝试从表单更新属性。

在B.中,您提供的示例还将创建一个新的Person对象,并将尝试通过IFilter接口更新属性,这是在MVC中指定白名单的方法之一。

您可能使用选项B的另一个原因是更新现有对象(例如,从数据库中的数据填充的对象),而不是创建新的对象实例。