jquery调用c#api控制器
本文关键字:控制器 c#api 调用 jquery | 更新日期: 2023-09-27 18:20:29
我已经启动了一些基于ASP:NETMVC和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方法不需要返回ActionResult吗?