簡體   English   中英

如何從.js文件中的文件后面的代碼中調用函數/方法?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM