在ASP.NET MVC控制器方法可以被修飾爲接受特定的HTTP方法(Get,Post,Get ..等)。在MvcContrib和ASP.NET MVC之間有3個類:「AcceptGet,AcceptPost」和AcceptVerbs。所有三個:「AcceptGet,AcceptPost」和AcceptVerbs都做同樣的事情。它們指定了什麼http方法被允許訪問一個動作/方法。使用哪個:「AcceptGet,AcceptPost」(MvcContrib)與AcceptVerbs(ASP.NET Mvc)?
AcceptGet和AcceptPost在MvcContrib中。雖然AcceptVerbs是Mvc框架的原生代碼。哪個更好用?
AcceptGet/AcceptPost(MvcContrib)
/// <returns></returns>
[AcceptGet]
public ActionResult Profile(string id)
AcceptVerbs(ASP.NET MVC)
/// <returns></returns>
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult EditRequest(string id)
文檔的MvcContrib項目AcceptPost可以發現here。
看來AcceptGet和AcceptPost是爲填補ASP.NET Mvc框架早期版本中的一個缺陷而創建的。 AcceptGet和AcceptPost類提供了強類型的HttpMethod屬性。
ASP.NET MVC發佈與AcceptVerbs這需要一個枚舉:
[Flags]
public enum HttpVerbs
{
Delete = 8,
Get = 1,
Head = 0x10,
Post = 2,
Put = 4
}
我的問題是哪一個是更好地執行,AcceptGet/AcceptPost或AcceptVerbs(與HttpVerbs枚舉類型)?