我有一个启用了WebAPI的MVC4 Web项目。
我想将数据发布到 API 控制器,但帖子不起作用,每次我都得到 404(Add 方法内的断点没有命中)....
这是代码:
public class IncidentSessionLogController : ApiController
{
[HttpPost]
public void Add(MyInputDTO inputData)
{
}
}
我使用基于操作的路由:
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ControllerAndAction",
routeTemplate: "api/{controller}/{action}");
config.Routes.MapHttpRoute(
name: "ControllerAndActionAndId",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });
}
我使用Fiddler发布数据:
http://localhost:42901/api/IncidentSessionLog/Add
我的网站目前托管在 IIS 快递中用于开发,我在 Fiddler 的请求正文中添加了 JSON 对象文字。
修复了它,感谢我的同事!
MVC 路由(我最初忘记发布)干扰了 API 路由,所以我必须向 MVC 路由添加一个约束:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Game", action = "Start", id = UrlParameter.Optional },
constraints: new { controller = @"^((?!(api)).)*$" });