gpt4 book ai didi

asp.net-mvc - 在 ASP.NET MVC 中使用 HtmlTextWriter

转载 作者:行者123 更新时间:2023-12-01 11:58:59 25 4
gpt4 key购买 nike

我正在迁移一些旧代码,其中 HtmlTextWriter 被广泛用于呈现 UI 元素。

我正在迁移代码以使用 ASP.NET MVC 1.0。据我所知,我没有使用任何 HtmlTextWriter 特定功能(例如缩进)。

目前,我正在使用包装器方法返回由 HtmlTextWriter 生成的字符串,如下所示:

var sw = new StringWriter();
var xhtmlTextWriter = new XhtmlTextWriter(sw);
GenerateHtml(xhtmlTextWriter);
return sw.ToString();

我的问题是:

  1. 我正在尝试从 ASP.NET MVC View 获取 HtmlTextWriter 实例,但显然即使 HtmlHelper 也不使用它。我错过了什么吗?

  2. 每次调用 GenerateHtml 都会生成小的 HTML 片段,一般不超过 1000 个字符,但可以调用很多次。是否值得将 HtmlTextWriter 相关代码重写为 StringBuilder?或者,如何创建一个 HtmlTextWriter 实例,它将用于所有调用(并在迭代结束时刷新)。

最佳答案

我认为使用 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.

免责声明:到目前为止,我只尝试使用 helper.ViewContext.Writer 生成

    列表。它运作良好。还没有尝试过它来呈现控件。

关于asp.net-mvc - 在 ASP.NET MVC 中使用 HtmlTextWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com