【发布时间】:2011-03-31 12:21:16
【问题描述】:
我想使用 jquery ajax 加载用户控件。我发现的一种可能是通过通用处理程序加载用户控件。任何人都可以帮助我。这里是我用来调用控件的 ajax 代码。
<script type="text/javascript">
function fillSigns() {
$.ajax({
url: "usercontrolhandler.ashx?control=signs.ascx",
context: document.body,
success: function (data) {
$('#signdiv').html(data);
}
});
}
</script>
这是处理程序文件中的代码
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
Page page = new Page();
UserControl ctrl = (UserControl)page.LoadControl("~/" + context.Request["control"] + ".ascx");
page.Form.Controls.Add(ctrl);
StringWriter stringWriter = new StringWriter();
HtmlTextWriter tw = new HtmlTextWriter(stringWriter);
ctrl.RenderControl(tw);
context.Response.Write(stringWriter.ToString());
}
此代码在下面显示的行中引发未找到对象引用错误。
page.Form.Controls.Add(ctrl);
【问题讨论】:
-
无需创建
Page对象来渲染UserControl。删除该代码,您会没事的。
标签: asp.net ajax generics user-controls handler