如果我有 2 个控制器操作:
[HttpGet]
public ActionResult Login()
{
//...
return View();
}
和
[HttpPost]
public ActionResult Login(FormCollection values)
{
//...
return RedirectToAction("Index","Home");
}
似乎需要 Post 装饰才能使其工作(这是有道理的),但 HttpGet 装饰完全是可选的。无论有没有,它都可以正常工作。除非另有说明,否则 MVC 似乎将控制器操作默认为 HttpGet。
我必须决定我是否希望我的代码的未来读者必须自己解决这个问题,或者我是否要记住在任何地方添加 HttpGet 以保持一致性。但我的问题不在于包含显式装饰是否是一种好习惯,即使它已经默认采用这种方式。
我的问题是:总是不需要用 HttpGet 装饰控制器方法吗?如果我明确指定或不明确指定,有什么方法可以咬我吗?我已经对此进行了搜索,但是我能找到的只是一些帖子,这些帖子描述了您可能想要同时使用这两个注释的原因,而不是专门针对/反对包括 HttpGet 的原因。