C# 使用服务器动态呈现用户控件。执行性能

C# 使用服务器动态呈现用户控件。执行性能,c#,asp.net,performance,user-controls,C#,Asp.net,Performance,User Controls,我们有一个场景,需要呈现一个用户控件,但不在调用页面中。这会导致性能问题,因为我认为当用户控件第一次呈现在页面中时,它会以某种方式进行编译、优化和缓存 请我不需要任何意见,这是一个错误的方式做它,它应该在页面上呈现-我知道这是可取的,但不可能 代码如下所示: System.Web.UI.Page pageHolder = new System.Web.UI.Page(); UserControl viewControl = (UserControl)pageHolder.LoadControl(

我们有一个场景,需要呈现一个用户控件,但不在调用页面中。这会导致性能问题,因为我认为当用户控件第一次呈现在页面中时,它会以某种方式进行编译、优化和缓存

请我不需要任何意见,这是一个错误的方式做它,它应该在页面上呈现-我知道这是可取的,但不可能

代码如下所示:

System.Web.UI.Page pageHolder = new System.Web.UI.Page();
UserControl viewControl = (UserControl)pageHolder.LoadControl(inPath);

pageHolder.Controls.Add(viewControl);
StringWriter output = new StringWriter();
HttpContext.Current.Server.Execute(pageHolder, output, false);
return output.ToString();
与将usercontrol嵌入页面时相比,它的性能非常差。我想知道是否有类似于Razor的东西可以调用Razor.Parse并传入第三个参数作为缓存名。或者其他一些我没有发现的路线


谢谢大家。

您是否尝试过呼叫pageHolder.FrameworkInitialize;viewControl.Render/*htmlWriter在这里*/?我会给它一个机会。它在.net的哪个版本中可用?所有的,都有点。FrameworkInitialize适用于.net framework,现在可能会出现在您的intellisense中。可能还需要更多的设置来允许您在不通过完整请求链的情况下调用Render。