这是我的 DefaultApi 配置:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{action}",
defaults: new { action = "DefaultAction", id = RouteParameter.Optional }
);
[ActionName("DefaultAction")]
public HttpResponseMessage Get(string id)
[ActionName("DefaultAction")]
public HttpResponseMessage Post(MyClass obj)
为什么使用 GET
能够正常工作,但是使用 POST
却会返回一个 404 Not Found
的错误?
有任何想法或者建议吗?
编辑:
客户端 JavaScript 代码:
$.ajax({
type: "POST",
url: "@Url.Content("~/api/controllername")",
data: args,
200: function (data) {
......
}
});
{controller}/{id}/{action}
,特别是当 id 是可选的时候,我不确定这是否与你的问题有关。通常我会使用{controller}/{action}/{id}
。我还建议在你的获取方法上添加[HttpGet]
,因为我在另一个项目中也必须这样做。 - Timothy Walters