【原创】Asp.Net MVC学习笔记之使用AcceptVerbs标签来制定Action的响应行为

2011年1月11日20:24:24

现象:Controler的Action方法前面,可以增加标签来指定方法支持的Get.Post类型,代码如下:

代码
public ActionResult Edit(int id)
{
Dinners dinner
= dinnerRepository.GetDinner(id);
return View(dinner);

}

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, FormCollection formValues)
{
Dinners dinner
= dinnerRepository.GetDinner(id);

try
{
UpdateModel(dinner);
//使用Controler内置的方法,通过反射来给Dinner对象赋值
dinnerRepository.Save();
return RedirectToAction("Details", new { id = dinner.DinnerID });
}
catch (Exception)
{

foreach (var issue in dinner.GetRuleViolations())
{
ModelState.AddModelError(issue.PropertyName, issue.ErrorMessage);
}
return View(dinner);
}
}

总结:不加任何标签的方法,表示2种方式都可以响应,但是优先响应指定了类型的方法。

原文地址:https://www.cnblogs.com/wbpmrck/p/1933698.html