C#在System.web.services.WebMethod中传递变量

时间:2009-11-19 22:55:38

标签: c# webmethod

对于一般的AJAX和javascript,我很垃圾。

我有一个WebMethod:

[System.Web.Services.WebMethod] 公共静态字符串DumpClients() {}

我在js文件中有这段代码:

mainScreen.DumpClients = function() {
    $('#runclientdumpbtn').attr("disabled", "true");
    mainScreen.clientDiv.innerHTML = "";
    $("#loadingimageclientdump").show();
    PageMethods.DumpClients(mainScreen.DumpClientsCallback, mainScreen.DumpClientsFailed);
}
mainScreen.DumpClientsCallback = function(result) {
    if (result) {
        $("#loadingimageclientdump").hide();
        mainScreen.clientDiv.innerHTML = result;
        $('#runclientdumpbtn').removeAttr("disabled");
    }
};
mainScreen.DumpClientsFailed = function(error, userContext, methodName) {
    if (error) {
        // TODO: add your error handling
        $("#loadingimageclientdump").hide();
        mainScreen.clientDiv.innerHTML = error.get_message();
        $('#runclientdumpbtn').removeAttr("disabled");
    }
};

Sys.Application.add_load(applicationLoadHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandler);

这很好,(我承认我根本不完全理解这一点),直到我需要从页面访问下拉列表。因为它是一个静态方法,所以我不能直接得到它,所以我想我可以通过web方法传递这个值。

小问题是我不知道怎么做。我一直在谷歌搜索它,但我没有得到任何快速。我正在通过一本JQuery书籍并了解更多基础知识,但此时此方法已超出我的范围。

我感谢任何帮助和建议,对不起,我可能会问一些愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

所以我认为我的方法完全错误,并寻找一种更好的方法来调用该方法并找到了这个解决方案:

  $("#runclientdumpbtn").click(function() {
        var selectedreporttype = $("#<%= dropdownpageID %>").val();

        $.ajax({
            type: "POST",
            url: "default.aspx/ExtractContacts",
            data: "{outputtype:'" + selectedreporttype + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: OnContactSuccess,
            failure: OnContactFailure,
            error: OnContactFailure
        });

        startContact();
    });




[WebMethod()]
public static string ExtractContacts(string outputtype)
{
}

希望这有助于其他人。