2015-11-04 46 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不管你回來的東西被認爲是操作方法的?