gpt4 book ai didi

asp.net - 通过 jQuery 加载 ascx

转载 作者:行者123 更新时间:2023-12-03 22:36:05 25 4
gpt4 key购买 nike

有没有办法通过 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);
}

这就是我得到的:

Invalid JSON:
Test =>(this test is label inside my 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 中收到此错误::(

Control 'ctl00_ddl' of type 'DropDownList' must be placed inside a form tag with 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');
}
});

关于asp.net - 通过 jQuery 加载 ascx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com