为什么我会在这里使用UpdateModel?
一个。
public ActionResult SubmitPerson(Person person)
{ }
乙
public ActionResult SubmitPerson(FormCollection form)
{
Person person=new Person();
UpdateModel<IFilter>(person,form)
}
答案 0 :(得分:2)
最终取决于您的实施要求。
在A.中,将创建一个Person对象的新实例,模型绑定器将尝试从表单更新属性。
在B.中,您提供的示例还将创建一个新的Person对象,并将尝试通过IFilter接口更新属性,这是在MVC中指定白名单的方法之一。
您可能使用选项B的另一个原因是更新现有对象(例如,从数据库中的数据填充的对象),而不是创建新的对象实例。