我试图通过ajax对我的控制器进行简单的调用。 RouteConfig尚未更改并设置为默认值。当我进行ajax呼叫时,"网络"中所请求的URL调试工具是:
'http://localhost:59275/Leaderboard/Leaderboard/GetPosition'
这导致404,因为Controller,Leaderboard被添加到Url中两次。正确的网址应该是
'http://localhost:59275/Leaderboard/GetPosition'
我的ajax电话如下:
$.ajax({
url: 'Leaderboard/GetPosition',
type: "GET",
dataType: 'xml',
success: function (data) {
$('#results').html(data);;
}
});
我的控制器如下:
public class LeaderboardController : Controller
{
[Webmethod]
public static DataTable GetPosition()
{
// do stuff
}
}
答案 0 :(得分:8)
如果请求ajax的页面的根URL是“Leaderboard”,那么ajax调用上的url应该只是“GetPosition”
或者您可以在前面使用“/ Leaderboard / GetPosition”和“/”
答案 1 :(得分:1)
使用Url.Action
帮助程序生成正确的网址。
改变这个:
url: 'Leaderboard/GetPosition'
到此:
url: '@Url.Action("GetPosition","Leaderboard")'