我使用 ASP.NET MVC 4 在 VS2012 中创建了一个简单的 WebAPI 项目。这就是我想要做的。我想让两个基于 POST 的操作采用相同的 url。我需要一个接受application/x-www-form-urlencoded
并路由到方法,FormDataCollection
然后另一个动作是路由到另一个方法的无内容 POST。请参阅下面的简化代码。
public class SampleController : ApiController
{
public string Post(string x, int y, FormDataCollection data)
{
return "Post 1";
}
public string Post(string x, int y)
{
return "Post 2";
}
}
现在,当我尝试发布(2 个呼叫,一个有application/x-www-form-urlencoded
,另一个没有内容类型或text/plain
)时,我收到内部服务器错误(500),因为路由似乎与类似的方法混淆了。如果我注释掉两者中的任何一个,那么在所有情况下都会调用另一个。
这种精细的路由是否应该手动处理(无论它看起来多么尴尬)还是我缺少一些东西(比如属性)。谢谢!