我正在www.asp.net上进行[这个教程][1]。它是为ASP.NET MVC 1编写的。虽然大部分内容适用于MVC 3,但我有一个关于以下代码的问题:
ASP.NET MVC 1.0(直接来自教程)
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Exclude = "Id")] Contact contactToCreate)
{
if (!ModelState.IsValid)
return View();
try
{
_entities.AddToContactSet(contactToCreate);
_entities.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
ASP.NET MVC 3(除了我的_entities对象外,MVC 3项目生成的默认创建操作)
[HttpPost]
public ActionResult Create(FormCollection collection)
{
try
{
_entities.AddToContacts(collection); // synax error
_entities.SaveChanges();
return RedirectToAction("Index");
}
catch
{
return View();
}
}
所以我的问题是为什么在第一个案例中我们传递了
Contact contactToCreate
,而在第二个案例中传递了FormCollection collection
?我可以轻易地将第二个案例的参数更改为只需Contact
Contact contactToCreate
,但我很想知道这个FormCollection collection
是什么?为什么MVC 3为我们生成它?如果可以使用FormCollection,那么修改后的示例会是什么样子?[1]: http://www.asp.net/mvc/tutorials/iteration-1-create-the-application-cs