AttributeRouting:为什么我的POST,但不是我的PUT路由?

时间:2012-06-29 07:26:25

标签: asp.net-mvc-4 asp.net-web-api attributerouting

  

可能重复:
  ASP.NET Web API returns 404 for PUT only on some servers

我创建了一个新的ASP.Net MVC4解决方案,以使用新的Web API功能。我有一个继承自ApiController的控制器,我正在使用the AttributeRouting project(也许是最好的解释here)来设置我的路线。

我为POST设置了以下方法:

[POST("bank/{id}")]
public void Post(int id, BankRequest bank)
{
    // Create a new Bank here
}

Fiddler调用此函数时,我可以在Visual Studio 2012中调试它,并看到一切都按预期工作。我可以看到id是正确的,并且json会自动序列化到我的BankRequest对象中。我觉得一切都很好。 GET也按预期工作。

然后我有一个类似的PUT方法:

[PUT("bank/{id}")]
public void Put(int id, BankRequest bank)
{
    // Update a Bank here
}

问题是我在调用它时收到HTTP 404 Not Found消息。我所做的就是发送完全相同的url和json,只需从POST更改为PUT。我在Fiddler所做的就是从POST变为PUT,所以我的url和json都被保留了下来。当我切换回POST时,它也可以正常工作。我不知道是不是花哨的AttributeRouting不起作用,或者其他东西是不正确的。

有谁知道为什么?

请注意,我正在设置其他人定义的API,因此我必须支持PUT。

0 个答案:

没有答案