Rai*_*ika 7 asp.net jquery webforms
有没有办法通过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');
}
});
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误.我的代码错了吗?
另一个更新:我正在使用
error: function (xhr, ajaxOptions, thrownError)
{
jQuery('#controlload').append(thrownError);
}
Run Code Online (Sandbox Code Playgroud)
这就是我得到的:
无效的JSON:
Test =>(此测试是我的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>
Run Code Online (Sandbox Code Playgroud)
但是当调用ajax我在asp中得到这个错误:(
必须将带有'DropDownList'类型的控件'ctl00_ddl'放在带有runat = server的表单标记内.
感谢@Yads.但他的解决方案只适用于html标签.
Vad*_*dim 12
建立艾美特的解决方案
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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下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');
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10181 次 |
| 最近记录: |