AJAX with ASP.NET:如何使用AJAX调用用户控件的方法?

时间:2016-02-05 17:15:50

标签: jquery asp.net ajax user-controls

我有一个母版页,其中有一个占位符来生成DateTime.ParseExact(DateTime.Now.ToString("MMMdyyyyhhmmtt"), "MMMdyyyyhhmmtt", CultureInfo.InvariantCulture) 的内容  Default.aspx定义了Default.aspx

User Control

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <uc:maincontent ID="maincontent" runat="server" /> </asp:Content> 里面有以下代码:

User Control

然后,我想调用一个方法,在<div class="form-group"> <button type="button" class="btn btn-primary" Text="Get Data" runat="server" data-toggle="model" data-target="#myModal" title="Provide a Year" ID="btnGenerate" /> </div 代码后面定义:

User Control

为此,我有以下[System.Web.Services.WebMethod] public static string GeneratePdfs() { string test = "Test String"; return test; } 代码:

jQuery

我还使用以下代码创建了$('#btnGenerate').click(function () { if (!ValidateInput()) { return false; } $.ajax({ type: "POST", url: "????" ..... }); 。我在stackoverflow上找到了这个例子

Generic Handler

但是这个例子没有解释如何调用public void ProcessRequest (HttpContext context) { using (var writer = new System.IO.StringWriter()) { Page pageHolder = new Page(); var control = (UserControl)pageHolder.LoadControl("~/controls/maincontent.ascx"); pageHolder.Controls.Add(control); context.Server.Execute(pageHolder, writer, false); context.Response.ContentType = "text/html"; context.Response.Write(writer.GetStringBuilder().ToString()); } } 中定义的Web Method

完成这样的事情的正确方法是什么?

0 个答案:

没有答案