我正在尝试从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。我不明白这个问题。我对此很感兴趣。 :)
答案 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":"' +
我希望它可以帮到你 地址+'“}'