我是ASP.NET MVC的新手。刚看到我的教授在实验室里这样做了。
public ActionResult Create()
{
return View();
}
[HttpPost]
public ActionResult Create(Student student)
{
if (ModelState.IsValid)
{
manager.CreateStudent(student);
return RedirectToAction("List");
}
else
{
return View("Error");
}
}
它完美无缺。但是我不清楚这个[HttpPost]
重载是如何工作的?
如果我将[HttpGet]
放在那里会怎么样?
答案 0 :(得分:1)
ASP.NET MVC是Model-View-Controller编程模型的特定实现。这意味着一个Controller方法调用返回一个View,它可以选择包含一个Model(某种数据)。
在这种特殊情况下,Create
将返回一个没有关联模型的视图,类似于空白创建学生页面,其中可能包含以下字段:名字,姓氏,电子邮件等。一旦输入该数据,它在客户端解析为Student
对象并POST到服务器。 ASP.NET MVC查看对象(及其类型)并找到要调用的适当重载方法。在这种情况下,它是一种在某种数据库中实际创建学生的方法。
如果您使用Create(Student)
拨打HttpPost
,ASP.NET MVC将返回Create()
,因为Create()
默认为[HttpGet]
。< / p>