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种方式都可以响应,但是优先响应指定了类型的方法。