Ham*_*lla 5 asp.net-mvc asp.net-mvc-routing
我有两个动作,一个是带有此签名的HttpGet:
[Route("NewsLetter/SelectEmail/{page?}")]
[HttpGet]
public ActionResult SelectEmail(int? page, string priCat, string secCat)
{
...
}
Run Code Online (Sandbox Code Playgroud)
还有一个HttpPost有这个签名:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SelectEmail(int id)
{
...
}
Run Code Online (Sandbox Code Playgroud)
在为HttpGet方法设置上述路由之后,我注意到另一个方法HttpPost已停止工作,在挖掘之后我已经意识到路由HttpGet也为自己设置了HttpPost,直到我明确设置路由属性它才起作用为了它:
[Route("NewsLetter/SelectEmail/{id}")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SelectEmail(int id)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道,这是一个错误吗?如果不是,那么无论如何设置路由属性[HttpGet]而不影响相应的[HttpPost]?
您不能同时使用 POST 和 GET,因为您的 Action 将接受任何 HTTP 方法的请求。尝试使用 AcceptVerbsAttribute 限制 RouteTable 中的 HTTP 方法。 https://msdn.microsoft.com/en-us/library/system.web.mvc.acceptverbsattribute(v=vs.118).aspx
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |