加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 为什么在HttpGet操作上的mvc属性路由也会影响没

发布时间:2020-12-16 03:17:02 所属栏目:asp.Net 来源:网络整理
导读:我有两个动作,一个是带有此签名的HttpGet: [Route("NewsLetter/SelectEmail/{page?}")][HttpGet]public ActionResult SelectEmail(int? page,string priCat,string secCat){ ...} 还有一个HttpPost有这个签名: [HttpPost][ValidateAntiForgeryToken]public
我有两个动作,一个是带有此签名的HttpGet:

[Route("NewsLetter/SelectEmail/{page?}")]
[HttpGet]
public ActionResult SelectEmail(int? page,string priCat,string secCat)
{
 ...
}

还有一个HttpPost有这个签名:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SelectEmail(int id)
{
...
}

在为HttpGet方法设置上述路由后,我注意到HttpPost的另一个方法已经停止工作,在挖掘之后我已经意识到HttpGet的路由也为HttpPost设置了自己,直到我明确地说它才行为它设置路由属性:

[Route("NewsLetter/SelectEmail/{id}")]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult SelectEmail(int id)
{
...
}

我想知道,这是一个错误吗?如果不是,那么无论如何设置[HttpGet]的路由属性而不影响相应的[HttpPost]?

解决方法

您不能同时使用POST和GET,因为您的Action将接受任何HTTP方法的请求.
尝试使用AcceptVerbsAttribute来限制RouteTable中的HTTP方法.
https://msdn.microsoft.com/en-us/library/system.web.mvc.acceptverbsattribute(v=vs.118).aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读