Asp.Net MVC HttpPost用法
一個Action只能用一個http 特性,例如:HttpPost 不能與HttpGet 或者多個HttpPost重複使用,否則會出錯
也可以用 [AcceptVerbs("put","get","post")]來表示一個Action可以共用多個請求。只要是包含了這個請求的,都可以呼叫此Action
HttpPost 等可以和 AcceptVerbs 特性共用
比如:
[HttpPost]
[AcceptVerbs("put","get","post")]
public ActionResult Index()
{
return View();
}
這樣是可以的,但實際上他只是當Post提交的時候才進入此Action(或者此Action才能被呼叫)
把[AcceptVerbs("put","get","post")]改成: [AcceptVerbs(HttpVerbs.Post)]與[HtppPost]共用也是可以的實際上效果一樣
自定義Http特性:
public class ZiDingYiAttribute : ActionMethodSelectorAttribute
{
private static readonly AcceptVerbsAttribute _innerAttribute = new AcceptVerbsAttribute(HttpVerbs.Post);
public ZiDingYiAttribute()
{
}
public override bool IsValidForRequest(ControllerContext controllerContext, MethodInfo methodInfo)
{
return _innerAttribute.IsValidForRequest(controllerContext, methodInfo);
}
}
使用:
[ZiDingYi]
public ActionResult Index()
{
return View();
}
這樣就可以自定義一個Http特性