[英]How to call function/method in code behind file from .js file?
我有一個檢查某些條件的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調用來實現,但是問題是我正在從5個不同的頁面上方調用myWebService方法,並且我需要為else塊中的所有頁面調用代碼隱藏函數。(所有aspx頁面都有該函數名稱相同,但內部代碼與每個頁面都不同)。 在這種情況下,我不知道如何設置URL。
從上述功能中,有什么更好的方法可以在代碼隱藏文件中調用方法?
您可以使用System.Web.Services.WebMethod
允許jQuery調用服務器端ASP.NET方法(無需使用PostBack)。 本文有一個很好的逐步指南。
基本上,您需要向靜態代碼隱藏方法中添加一個屬性:
[WebMethod]
public static String MyMethod()
{
return "My Method from code-behind"
}
而在你的JavaScript:
function myWebService(param1, param2, param3) {
$.ajax({
type: "POST",
url: "Default.aspx/MyMethod", // will make AJAX call to your code-behind code
// rest of you code...
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.