Asp.net
通過 jQuery 載入 ascx
有沒有辦法通過 jQuery 載入 ascx 文件?
更新:
感謝@Emmett 和@Yads。我正在使用帶有以下 jQuery ajax 程式碼的處理程序:
jQuery.ajax({ type: "POST", //GET url: "Foo.ashx", data: '{}', contentType: "application/json; charset=utf-8", dataType: "json", success: function (response) { jQuery('#controlload').append(response.d); // or response }, error: function () { jQuery('#controlload').append('error'); } });但我得到一個錯誤。我的程式碼錯了嗎?
另一個更新:我正在使用
error: function (xhr, ajaxOptions, thrownError) { jQuery('#controlload').append(thrownError); }這就是我得到的:
JSON 無效:
測試 =>(此測試是我的 ascx 中的標籤)
和錯誤後我的 ascx 文件!!!
另一個更新:
我的 ascx 文件是這樣的:
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true"> <asp:ListItem>1</asp:ListItem> <asp:ListItem>2</asp:ListItem> </asp:DropDownList> <asp:Label ID="Label1" runat="server">Test</asp:Label>但是當呼叫ajax時我在asp中得到這個錯誤::(
“DropDownList”類型的控制項“ctl00_ddl”必須放在帶有 runat=server 的表單標記內。
感謝@Yads。但他的解決方案僅適用於 html 標籤。
建構 Emmett 的解決方案
public class FooHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; context.Response.Write(RenderPartialToString("Foo.ascx")); } private string RenderPartialToString(string controlName) { Page page = new Page(); Control control = page.LoadControl(controlName); page.Controls.Add(control); StringWriter writer = new StringWriter(); HttpContext.Current.Server.Execute(page, writer, false); return writer.ToString(); } public bool IsReusable { get { return false; } } }使用以下 jquery 請求
jQuery.ajax({ type: "POST", //GET url: "Foo.ashx", dataType: "html", success: function (response) { jQuery('#controlload').append(response); // or response }, error: function () { jQuery('#controlload').append('error'); } });