0

可能有更好的方法来获得我正在寻找的结果。基本上,我有一个使用 jquery.load() 将内容动态加载到 div 的页面。

到目前为止,它适用于静态内容,但现在我有一个中继器,我希望能够包含在此内容中。所以我想使用一个通用处理程序(可能是一个 web 服务)来动态生成用户控件的渲染 html 并将其插入(或附加或加载)到 div 中。

到目前为止,我没有运气。

最初我尝试了这种方法

        UCPeople ucPeople = new UCPeople { RoleType = (roleType.ToLower() == "board" ? RoleTypes.Board : RoleTypes.Executive) };

        TextWriter myTextWriter = new StringWriter();
        HtmlTextWriter myWriter = new HtmlTextWriter(myTextWriter);

        ucPeople.RenderControl(myWriter);

        return myTextWriter.ToString();

它只返回一个空字符串。

所以然后我尝试将控件添加到页面实例,它仍然是空白的。

然后我尝试用这个将 userconrol 加载到新页面实例中。

var page = new Page(){ViewStateMode = ViewStateMode.Disabled };
            UCPeople ucPeople = (UCPeople)page.LoadControl("~/our-company/people/UCPeople.ascx");

这似乎更进一步,但用户控件抛出错误,因为它不在表单中。
当我检查该页面的表单为空时。所以我想我需要创建一个页面实例,我尝试了两种不同的方式。

        var p2 = (Page)PageParser.GetCompiledPageInstance("~/our-company/people/peopleTest.aspx",
                                                    "~/our-company/people/peopleTest.aspx", context);
        var p = (Page)System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath("~/our-company/people/peopleTest.aspx", typeof(Page));

两者仍然产生一个空形式。

我没主意了。有什么建议么?谢谢。

4

0 回答 0