使用C#代码加载ascx组件

Ale*_*exH 10 c# asp.net ascx

有什么办法可以使用C#加载然后"渲染"ascx控件吗?

本质上我试图用C#函数替换内联ASP,它将返回相同的HTML.然后,我可以将其设置为webmethod,以便我可以使用生成原始html的相同代码使用jQuery更新页面的该部分.

我真的需要一些方法来做这件事,这似乎是一条合乎逻辑的路线.

Kel*_*tex 17

您需要创建一个用于呈现控件的页面:

public static string RenderUserControl(string path)
{
    Page pageHolder = new Page();
    Control viewControl = pageHolder.LoadControl(path);

    pageHolder.Controls.Add(viewControl);
    using(StringWriter output = new StringWriter())
    {
        HttpContext.Current.Server.Execute(pageHolder, output, false);
        return output.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

用户控件本身不会呈现.(本文提供了一些相关信息,我借用了一些代码).