2015-11-04 87 views
2

我已经开始基于ASP的一些项目:NET MVC和javaScript/jquery。我试图用$ .ajax函数调用我的控制器的api。但我总是得到404。我已经搜索了很多不同的解决方案,但我又获得了404个。我知道这个问题经常在网上提出,但是又希望不会有很多-1。我会很感激任何帮助,也许我因为森林而看不到树。 参数“datas”只是JSON格式的字符串。jquery调用c#api控制器

我的代码如下。

javascript调用:

function checkValidId(datas) { 
    $.ajax({ 
     url: 'api/UserInfo/Test/', 
     type: 'POST',   
     data: JSON.stringify(datas), 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json', 
     success: function (valid) { 
      if (valid) { 
       console.log("HURAAAAY!!!"); 
      } else { 
       console.log("OOOH NO YOU DON'T !!!"); 
      } 
     } 
    }); 
} 

我的控制器:

public class UserInfoController : ApiController 
    { 
     private DM_DBEntities1 db = new DM_DBEntities1(); 

     [HttpPost] 
     public static string Test(string data) 
     {   
      return "H E L L L L O"; 
     }  
    } 

我WebApiConfig:

public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      config.MapHttpAttributeRoutes(); 

      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
     } 
    } 

回答

1

你配置的路由是错误的。

将其更改为:

config.Routes.MapHttpRoute(
    name: "DefaultApi", 
    routeTemplate: "api/{controller}/{action}" 
); 
0

不UserInfoController您的试验方法需要返回的ActionResult不管你回来的东西被认为是操作方法的?