【发布时间】:2015-05-11 09:22:06
【问题描述】:
我已经回答了几个问题,但还没有找到我的问题的答案。
我的 ajax 请求
$.ajax({
url: "api/Company/GetQuarters/" + STARTQ+ '/' + CURRQ,
type: "GET",
...
});
我的 api
[HttpGet]
public HttpResponseMessage GetQuarters(int start,int end)
{
...
}
路线
routes.MapHttpRoute(
"GetQuarters",
"Company/GetQuarters/{start}/{end}",
defaults: new { start = RouteParameter.Optional, end = RouteParameter.Optional });
我不断收到错误消息
错误信息
在控制器“公司”上找不到与 请求。
我该如何解决?
编辑:项目结构为Test->API->CompanyAPI.cs;测试->Global.asax 在 Global.asax 中
void RegisterRoutes(RouteCollection routes)
{
....
routes.MapHttpRoute(
"API",
"api/{controller}/{action}/{id}/",
defaults:new { id = RouteParameter.Optional, Action="GET, POST" });
routes.MapHttpRoute(
"GetQuarters",
"Company/GetQuarters/{start}/{end}",
defaults: new { start = RouteParameter.Optional, end=RouteParameter.Optional });
....
}
控制器:
public class CompanyController : ApiController
{
[HttpGet]
public HttpResponseMessage GetQuarters(int start,int end)
{
...
}
}
【问题讨论】:
-
尝试从您的 Ajax 调用中删除“api/”前缀。我假设您显示的操作是在公司控制器中?
-
yes sellotape,public HttpResponseMessage GetQuarters(int start,int end) 在 CompanyController 中。当我删除“api/”时,我收到错误消息:找不到提供控制器名称的路由以匹配请求 URI 'localhost/test/Company/GetQuarters/56/64
-
您能否编辑问题以添加其余的路由配置(以及可能影响此的配置)以及控制器的属性和声明。还对您的项目结构发表评论;例如你的 MVC 和 Web API 控制器在同一个项目中吗?什么版本的 MVC / Web API?
标签: ajax api url-routing