在ASP.NET 3.5中,我在页面上有这个javascript(default.aspx):
function getMoreNewsItems() {
$.ajax({
type: "POST",
url: "default.aspx/LoadNewsItems",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
alert(msg.d);
}
});
}
在后面的代码中使用它(default.aspx.cs):
[System.Web.Services.WebMethod]
public static string LoadNewsItems() {
return "test1";
}
我在页面上有一个ScriptManagerMethods = true的ScriptManager。一切正常。
现在项目已升级到ASP.NET 4.0并正在使用新的URL路由功能。 AJAX调用不再起作用。在FireBug中,我看到它返回完整的页面,而不是XML响应。
ASP.NET 4中可能导致此错误的变化是什么?
答案 0 :(得分:9)
已修复,
更改
url: "default.aspx/LoadNewsItems",
要
url: '<%= ResolveUrl("default.aspx/LoadNewsItems") %>',
它与URL路由有关。