Adr*_*ong 3 asp.net-mvc performance htmltextwriter
我正在迁移一些旧代码,其中HtmlTextWriter广泛用于呈现UI元素.
我正在迁移代码以使用ASP.NET MVC 1.0.据我所知,我没有使用任何HtmlTextWriter特定的功能(如缩进).
目前,我使用包装器方法返回由以下生成的字符串HtmlTextWriter:
var sw = new StringWriter();
var xhtmlTextWriter = new XhtmlTextWriter(sw);
GenerateHtml(xhtmlTextWriter);
return sw.ToString();
Run Code Online (Sandbox Code Playgroud)
我的问题是:
我试图HtmlTextWriter从ASP.NET MVC View 获取实例,但显然即使HtmlHelper也不使用它.我想念什么吗?
每次调用GenerateHtml都会生成小的HTML片段,一般不超过1000个字符,但可能会有很多调用.是否值得将HtmlTextWriter依赖代码重写为StringBuilder?或者相反,如何创建HtmlTextWriter将在所有调用上使用的实例(并在迭代结束时刷新).
小智 5
我认为使用helper.ViewContext.writer不会创建StringBuider和StringWriter.
然后上面的示例代码将是:
var calendar = new DayPilotCalendar();
if( model != null )
{
model.CopyTo( calendar );
}
if( options != null )
{
options.CopyTo( calendar );
}
HtmlTextWriter writer = new HtmlTextWriter( helper.ViewContext.Writer );
writer.AddAttribute( HtmlTextWriterAttribute.Class, "dayPilot" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
calendar.RenderControl( writer );
writer.RenderEndTag(); // Close DIV
return( null ); // Don't need to return anything.
Run Code Online (Sandbox Code Playgroud)
免责声明:到目前为止,我只尝试使用helper.ViewContext.Writer生成<UL>列表.它工作正常.没有尝试过渲染控件.