c# - 为什么在 ASP.NET Web API 中找不到我的 POST 操作?

标签 c# asp.net asp.net-web-api

这是我的 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) {
          ......
        }
});

最佳答案

我遇到了类似的问题,解决方案是将 [FromBody] 添加到方法的参数中,如下所示:

[HttpPost]
public void PostIncreaseViewCounter([FromBody]int id)
{
}

关于c# - 为什么在 ASP.NET Web API 中找不到我的 POST 操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18838756/

相关文章:

c# - 如何在代码后面检查端口当前是否与 IIS7 (webSite) 一起使用?

C# .net OWIN - 使用通配符动态 URL 启动 WebAPI 的路由

C# 动态执行函数的名称?

c# - lambda c# 中 "() =>"的用途是什么

c# - 呈现时如何从 WebControl 中删除 span 标记

c# - asp.net mvc 3 Razor 。导航以在表上查看 tr 单击

c# - 如何生成动态标签并使用列名和值作为文本

javascript - 配置 Gulp 以反射(reflect) css 更改

c# - 使用 Fiddler POST 测试 WebApi

json - REST:更新多条记录