【发布时间】:2015-09-06 11:20:22
【问题描述】:
在我的 apicontroller 中,我有 2 种方法可以处理 Post 请求:
public WatchListItemDTO Post(MovieDto movie)
{
//do smt..
}
[HttpPost]
[Route("MarkMovieAsWatched/{id}")]
public void MarkMovieAsWatched(int id)
{
// do smt..
}
控制器具有前缀属性:[RoutePrefix("api/DownloadList")]。当我向http://localhost:4229/api/DownloadList/MarkMovieAsWatched/发出(发布)请求时,它会触发我的Post 方法。该请求还包含一个对象:{id: 12}。
我的WebApiConfig:
public static void Register(HttpConfiguration config)
{
config.EnableCors();
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// To disable tracing in your application, please comment out or remove the following line of code
// For more information, refer to: http://www.asp.net/web-api
config.EnableSystemDiagnosticsTracing();
}
有人可以向我解释为什么方法MarkMovieAsWatched 没有被命中吗?以及如何解决这个问题?
【问题讨论】:
-
这可能会有所帮助:stackoverflow.com/a/9569381/1558122
标签: c# asp.net-web-api asp.net-web-api2