使用Server.Execute性能动态呈现用户控件

时间:2014-10-30 11:23:16

标签: c# asp.net performance user-controls

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

我不需要任何建议,这是错误的方法,它应该在页面中呈现 - 我知道这是更好的,但是不可能。

所以代码看起来像这样:

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()并将第三个参数作为缓存名称传递。或者其他一些我没有设法发现的路线。

谢谢大家。

0 个答案:

没有答案