ASP.NET 4 jquery ajax webmethod调用

时间:2010-11-07 18:35:28

标签: jquery ajax asp.net-4.0 webmethod

在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中可能导致此错误的变化是什么?

1 个答案:

答案 0 :(得分:9)

已修复,

更改

url: "default.aspx/LoadNewsItems",

url: '<%= ResolveUrl("default.aspx/LoadNewsItems") %>',

它与URL路由有关。