来自JQuery的代码中的call方法

时间:2010-06-11 08:47:20

标签: c# asp.net jquery

我正在尝试从Jquery

在ASP.NET中执行一个方法
$.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "MyMessages.aspx?id=66&epslanguage=sv/test",
        data: "{}",
        dataType: "json",
        error: function(xhr, err) {
        alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
        alert("responseText: " + xhr.responseText);
            },
        success: function() {
            alert("it works" );
        }
    })
代码背后的代码:

    [WebMethod]
    protected void test()
    {
        test.Text = "works";
    }

当我这样做时,我得到errormessage redayState:4和status 200。我不明白这个问题。我对此很感兴趣。 :)

2 个答案:

答案 0 :(得分:1)

data: "{}",应该只是data: {},,或者只是在不使用时将其删除,..

答案 1 :(得分:0)

首先,你的方法应该是静态的和公开的 所以不是这个

   [WebMethod]
protected void test()
{
    test.Text = "works";
}

应该是

[WebMethod]
public static void test()
{
    test.Text = "works";
}

这是第一个修复 第二个你无法访问test.text 所以,如果你想确保它有效,你可以 以这种方式写它

$.ajax({
    type: "POST",
    contentType: "application/json",
    url: "MyMessages.aspx/test",
    data: "{}",
    dataType: "json",
    error: function(xhr, err) {
    alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
    alert("responseText: " + xhr.responseText);
        },
    success: function() {
        alert("it works" );
        // and here use jQuery to set the control test
        $("#<%=test.ClientID%>".text("Works");
    }
})

所以你的最终代码应该是这样的

 [WebMethod]
public static void test()
{
    //test.Text = "works";
}

和Ajax方法

   $.ajax({
    type: "POST",
    contentType: "application/json",
    url: "MyMessages.aspx/test",
    data: "{}",
    dataType: "json",
    error: function(xhr, err) {
    alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
    alert("responseText: " + xhr.responseText);
        },
    success: function() {
        alert("it works" );
        // and here use jQuery to set the control test
        $("#<%=test.ClientID%>".text("Works");
    }
})

我确实更改了你的网址 如果你想传递参数,你可以在Ajax方法的数据部分传递它们 像这样的事情

    '{"fname":"' + fname + '","lname":"' + lname + '","email":"' + email + '","address":"' + 

我希望它可以帮到你      地址+'“}'