如何从.js文件中调用文件后面的代码中的函数/方法?

时间:2016-03-25 08:00:51

标签: javascript c# jquery asp.net code-behind

我有一个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名称的功能,但内部代码与每个页面不同)。在这种情况下,我不知道如何设置网址。

有没有更好的方法从上面的函数???

调用代码隐藏文件中的方法

1 个答案:

答案 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"
}