显然,现实生活中的应用程序要复杂得多,但对于这个例子,假设我有以下简单视图,我需要保存用户:
@model UserViewModel
@Html.TextBoxFor(model=>model.FirstName)
</br>
@Html.TextBoxFor(model=>model.MiddleName)
</br>
@Html.TextBoxFor(model=>model.LastName)
提交后,我可以通过两种方式在控制器级别接收它:
1)
public ActionResult(UserViewModel user)
{
var myUser = new User();
myUser = user.FirstName;
myUser = user.MiddleName;
myUser = user.LastName;
}
和
2)
public ActionResult(FormCollection collection)
{
var myUser = new User();
myUser = collection.Get("FirstName");
myUser = collection.Get("MiddleName");
myUser = collection.Get("LastName");
}
问题:有理由使用一种方法而不是另一种方法吗?还有一些开发人员告诉我,首选第二种方法。像第一个示例中显示的那样传递整个对象并不是一个好主意。为什么 ?