Web API 2 404使用jQuery Ajax时出错

时间:2014-04-11 15:45:17

标签: c# jquery asp.net asp.net-web-api-routing asp.net-web-api2

我有一个使用jQuery Ajax消耗的Web API 2,通过文档查看,您现在可以在Controller内部包含一个路由,以便您可以在GET请求中包含其他参数。

我试过添加这个例子:

   [Route("api/formHTML/{id}/{code}/{value}")]
        public IEnumerable<string> Get(int id, int code, int value)
        {
            return new string[] {"<html><head></head><body>Test</body></html>"};
        }

这基本上会返回一些HTML代码。

在api / formHTML / 1/5/2上使用GET时,我一直找不到404

我的Global.asax中仍然包含默认路由映射。

protected void Application_Start(object sender, EventArgs e)
    {
         GlobalConfiguration.Configuration.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}"
        );
    }

有谁知道为什么我会得到404?

我知道我可以通过在Get Request中将它们作为数据对象发送并在Web API中使用formBody来获取值,但我最好使用上述约定。

由于

1 个答案:

答案 0 :(得分:1)

我已经通过再次阅读文档解决了这个问题,我将默认映射移到了WebApiConfig.cs,然后从Global.asax中调用了这个方法:

  GlobalConfiguration.Configure(WebApiConfig.Register);

WebApiConfig.cs包含:

  public class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
              name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = System.Web.Http.RouteParameter.Optional }
           );
        }
    }

我的问题已经解决了!