小编Dil*_*aul的帖子

我们如何使用通用处理程序加载usercontrol?

我想使用jquery ajax加载用户控件.我发现一个可能是通过通用处理程序加载usercontrol.任何人都帮助我.这里是我用来调用控件的ajax代码.

 <script type="text/javascript">
 function fillSigns() { 
                $.ajax({
                    url: "usercontrolhandler.ashx?control=signs.ascx",
                    context: document.body,
                    success: function (data) {                       
                        $('#signdiv').html(data);
                    }
                });
            }  
 </script>
Run Code Online (Sandbox Code Playgroud)

这是处理程序文件中的代码

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());
    } 
Run Code Online (Sandbox Code Playgroud)

此代码在下面显示的行中引发对象引用未找到错误.

 page.Form.Controls.Add(ctrl);
Run Code Online (Sandbox Code Playgroud)

asp.net generics ajax user-controls handler

5
推荐指数
1
解决办法
4820
查看次数

标签 统计

ajax ×1

asp.net ×1

generics ×1

handler ×1

user-controls ×1