【发布时间】:2012-08-22 00:41:47
【问题描述】:
显然现实生活中的应用程序要复杂得多,但对于这个例子,假设我有以下简单视图,我需要保存用户:
@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");
}
问题:是否有理由使用一种方法而不是另一种方法?还有一些开发人员告诉我,首选第二种方法。像第一个示例中显示的那样传递整个对象并不是一个好主意。为什么?
【问题讨论】:
-
我无法想象为什么会有人永远接受
FormCollection,但也许有些人从编写自己的解析和验证代码中获得了不正当的乐趣再来一遍…… -
验证..好点
-
Also a few developers told me that second method is preferred. That passing object the whole object like shown in the first example is not a good idea.。真的吗?他们开发什么?我们在谈论软件开发人员吗?还是在这个领域崭露头角的人?我相信他们为您提供了关于为什么首选第二个的 solid 论据。你可以给他们送我啤酒。 -
我现在可以自己去喝杯啤酒。:) 谢谢大家。
标签: asp.net-mvc model-view-controller formcollection