jquery 调用 c# api 控制器

jquery call to c# api controller

我已经开始了一些基于 ASP:NET MVC 和 javaScript/jquery 的项目。我正在尝试使用 $.ajax 函数对我的控制器进行 api 调用。但我总是得到 404。我用谷歌搜索并尝试了很多不同的解决方案,但我还是得到了 404。我知道这个问题在网上经常被问到,但再次希望不会有很多 -1。我将不胜感激,也许我因为森林而看不到树。 参数 "datas" 只是 JSON 格式的字符串。

我的代码如下。

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 }
            );
        }
    }

你配置的路由有误

改为:

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

UserInfoController 中的 Test 方法不需要 return ActionResult,无论您是否 return 将某些东西识别为操作方法?