【发布时间】:2016-02-02 23:26:44
【问题描述】:
我们有一些只处理 GET 请求的控制器。当 POST 到达时,它会返回 500,而我宁愿返回 405(不允许的方法)。有没有办法设置它,以便控制器上的所有路由在收到 POST 时返回 405?一些控制器需要接受 POST,因此它不能在 IIS 配置中(即配置为拒绝动词)。供您参考,该平台是一个 Azure Web 应用程序。
我确实有一个可行的解决方案,但缺点是必须将其添加到每条路线中,这似乎很麻烦。
[Route("example/route/{date:datetime}")]
[AcceptVerbs("GET", "POST")]
public Periods GetExampleRoute(DateTime date)
{
if (Request.Method.Method.Equals("POST"))
{
throw new HttpResponseException(HttpStatusCode.MethodNotAllowed);
}
... GET processing ...
}
【问题讨论】:
标签: asp.net asp.net-mvc azure post asp.net-web-api2