【发布时间】:2015-09-29 08:06:40
【问题描述】:
我有一个继承自ApiController 的类,它的一些方法被正确调用,另一些是Not found。我不知道为什么。我一直在寻找解决方案几个小时,仍然没有得到它。请注意,我是新手,这是我在 C# 中的第一个 WebApi。
路由:(WebApiConfig.cs)
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Configuration et services API Web
// Itinéraires de l'API Web
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
控制器:
public class ExchangeController : ApiController
{
public HttpResponseMessage GetMailHeader(int id)
{
Console.WriteLine(id);
HttpResponseMessage response = new HttpResponseMessage();
response.Content = new StringContent("ok");
return response;
}
public HttpResponseMessage GetTest()
{
HttpResponseMessage response = new HttpResponseMessage();
response.Content = new StringContent("working !!");
return response;
}
}
JS:
$.ajax({
type: "GET",
url: "/api/exchange/getTest",
done: function (data) {
console.log(data);
}
});
$.ajax({
type: "GET",
url: "/api/exchange/getMailHeader",
data: "42",
done: function (data) {
console.log(data);
}
});
getTest 方法返回 200 OK,而 getMailHeader 返回 404 Not Found。我错过了什么?
【问题讨论】:
-
微不足道的步骤,但我发现自己陷入了困境:重建所有解决方案,然后再次部署。
-
getMailHeader 的数据不正确。你应该这样做: data: { id: 42 } (将其作为 JSON 传递)
-
@Ahmedilyas 这实际上是问题的一部分,它让我找到了解决方案! ;)
标签: c# asp.net asp.net-web-api2