我如何编程方式创建一个表单和一个用户控件一个System.Web.UI.Page?(How can

2019-07-19 06:40发布

我有这样的代码:

public static string RenderView(string path)
{
    Page pageHolder = new Page();
    UserControl viewControl = (UserControl)pageHolder.LoadControl(path);

    pageHolder.Controls.Add(viewControl);

    StringWriter output = new StringWriter();
    HttpContext.Current.Server.Execute(pageHolder, output, false);

    return output.ToString();
}

这是从运行:

    [WebMethod]
    public string GetReportsHTML()
    {
        string output = "";

        output = ViewManager.RenderView("ReportsControl.ascx");

        return output;
    }

这是测试渲染ASCX文件,并把它们吐掉了一个SOAP / REST的服务。

问题是,如果它们不与RUNAT =服务器标签封装一些控件(RUNAT =服务器的)失败。

该解决方案是在这里 ,但解决方案假定是一个ASPX文件,在那里我可以编辑标记内。

我将如何编程方式创建一个页面,添加一个表格,设置RUNAT =服务器,这样我可以遵循的解决方案,我的控件添加到窗体控件?

Answer 1:

您是否尝试过这样的事情?

public static string RenderView(string path)
{
    Page pageHolder = new Page();
    System.Web.UI.HtmlControls.HtmlForm formHolder = new System.Web.UI.HtmlControls.HtmlForm();
    pageHolder.Controls.Add(formHolder );

    UserControl viewControl = (UserControl)pageHolder.LoadControl(path);

    formHolder.Controls.Add(viewControl);

    StringWriter output = new StringWriter();
    HttpContext.Current.Server.Execute(pageHolder, output, false);

    return output.ToString();
}

希望这将有助于



文章来源: How can I programmatically build a System.Web.UI.Page with a Form and a UserControl?