0

我有两种方法与调用的属性相同,[WebMethod]但一种采用参数,一种是参数较少。当我试图通过 jquery 调用无参数页面方法时,会发生错误。我想知道 asp.net 网页表单页面中 web 方法的重载是不可能。如果可能的话,我在哪里犯了错误。

这是我的示例代码

我在页面后面的 aspx 代码中定义的两个 web 方法

        [WebMethod]
        public static string GetFaxUI()
        {
            string outputToReturn = "";
            //System.Threading.Thread.Sleep(5000);
            Page pageHolder = new Page();

            BBAReman.UserControls.ucFax ctl = (BBAReman.UserControls.ucFax)pageHolder.LoadControl("~/UserControls/ucFax.ascx");
            HtmlForm tempForm = new HtmlForm();
            tempForm.Controls.Add(ctl);
            pageHolder.Controls.Add(tempForm);
            StringWriter output = new StringWriter();
            HttpContext.Current.Server.Execute(pageHolder, output, false);
            outputToReturn = output.ToString();
            return outputToReturn;
        }

        [WebMethod]
        public static string GetFaxUI(string Country)
        {
            string outputToReturn = "";
            //System.Threading.Thread.Sleep(5000);
            Page pageHolder = new Page();

            BBAReman.UserControls.ucFax ctl = (BBAReman.UserControls.ucFax)pageHolder.LoadControl("~/UserControls/ucFax.ascx");
            ctl.LocalizeUI(Country);
            HtmlForm tempForm = new HtmlForm();
            tempForm.Controls.Add(ctl);
            pageHolder.Controls.Add(tempForm);
            StringWriter output = new StringWriter();
            HttpContext.Current.Server.Execute(pageHolder, output, false);
            outputToReturn = output.ToString();
            return outputToReturn;
        }

这是我通过 jquery 调用 web 方法的方式

 jQuery.ajax({
            type: "POST",
            url: "FaxUI.aspx/GetFaxUI",
            data: {},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                sHtml = data.d;
                sHtml = $(sHtml).find('#content').html();
                $sHtml = $(sHtml)
                $sHtml.css({ 'display': 'none' }).appendTo('div#dialog');
                $.doTimeout(1000, function () {
                    $(".ui-dialog").animate({
                        left: (($(window).width() - 346) / 2) + 'px',
                        top: (($(window).height() - 305) / 2) + 'px',
                        height: '305px', width: '346px'
                    }, 200,
                    function () {
                        $("#dialog").removeClass("BusyStyles").find('#faxmain').fadeIn(2000);
                        $("#dialog").css({ height: '26px' });
                    });
                });
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                alert(textStatus);
            }
        });

在相同的代码工作之前,但是当我超载该方法GetFaxUI()时,我得到了错误。请指导我犯了什么错误。谢谢

4

0 回答 0