我有一个Ajax方法检查某些条件,如果条件失败,那么我通过警告框显示一条消息。但是我需要在aspx页面上调用函数来做其他部分。
我的示例代码:
function myWebService(param1, param2, param3) {
$.ajax({
type: "POST",
url: "/WebServices/WebServiceMethod",
data: JSON.stringify({ param1: param1, param2: param2, param3: param3 }),
dataType: "json",
contentType: "application/json; charset=utf-8",
async: true,
success: function (msg) {
if (msg.d) {
var obj = function callbackfunction() {
myWebService(param1, param2, param3);
}
window.setTimeout(obj, 10000);
}
else {
alert("WebMethod checked the condition and it was failed.");
// I need to call method in code behind file from here.
}
}
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert("error");
}
});
}
我尝试通过另一个WebMethod和Ajax Call实现,但问题是我从5个不同的页面调用myWebService方法,我需要为所有页面调用代码隐藏函数 在else块中。(所有aspx页面都具有SAME名称的功能,但内部代码与每个页面不同)。在这种情况下,我不知道如何设置网址。
有没有更好的方法从上面的函数???
调用代码隐藏文件中的方法答案 0 :(得分:2)
您可以使用SELECT count(*)
来允许jQuery调用服务器端ASP.NET方法(不使用PostBack)。这个article有一个很好的步骤指南。
基本上,您需要向静态代码隐藏方法添加属性:
System.Web.Services.WebMethod
在你的javascript:
[WebMethod]
public static String MyMethod()
{
return "My Method from code-behind"
}