我正试图从AJAX触发代码隐藏方法:
function onEnter(key) {
var lotTxt = document.getElementById("lotTxt");
if (key.keyCode == 13) {
alert("in if")
$.ajax({
url: 'Default.aspx/assEatinSzn',
type: "POST",
contentType: 'application/json; charset=utf-8',
data: { test: "testString"},
dataType: 'json',
success: function (data) {
alert("Success")
},
failure: function (data) {
alert("Failure")
}
});
}
}
我尝试在后面的代码中执行的操作是使用以下值更新此文本框:
Public Sub assEatinSzn(test As String)
productTxt.Value = "Success"
End Sub
基本上我在问为什么ajax没有触发代码隐藏方法。我已经提出了断点,看看是否触发了代码隐藏方法,但是没有任何东西会破坏。 ajax方法也会产生完整的功能以及奇怪的副作用。提前致谢
答案 0 :(得分:1)
问题是您没有传递test
参数的值。希望以下代码可以解决您的问题:
type: 'POST',
url: 'default.aspx/assEatinSzn',
data: JSON.stringify({ test: 'value here' }),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
}
......
并确保在您的方法之前添加[WebMethod]
:
[System.Web.Services.WebMethod]
Public Shared Sub assEatinSzn(test As String)
productTxt.Value = "Success"
End Sub