作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
除了受益于替代设备的自适应渲染之外,编写所有这些代码是否有意义:
writer.WriteBeginTag("table");
writer.WriteBeginTag("tr");
writer.WriteBeginTag("td");
writer.Write(HtmlTextWriter.TagRightChar);
writer.WriteEncodedText(someTextVariable);
writer.WriteEndTag("td");
writer.WriteEndTag("tr");
writer.WriteEndTag("table");
当 StringBuilder 可以简单地构建相同的东西时:
sb.Append("<table><tr><td>");
sb.Append(someTextVariable);
sb.Append("</td></tr></table>");
最佳答案
另一个优势可能是使用 HtmlTextWriter 可以以更干净(更易于维护)的方式格式化代码,并且 HtmlTextWriter 支持自动编码 HTML。比较:
writer.AddAttribute(HtmlTextWriterAttribute.Id, "someId");
if (!string.IsNullOrEmpty(cssClass)) writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClass);
writer.AddStyleAttribute(HtmlTextWriterStyle.Color, "Red");
writer.RenderBeginTag(HtmlTextWriterTag.Span);
writer.WriteEncodedText(text);
writer.RenderEndTag();
对比:
StringBuilder html = new StringBuilder();
html.Append("<span");
html.Append(" id=\"someId\"");
if (!string.IsNullOrEmpty(cssClass)) html.AppendFormat(" class=\"{0}\"", HttpUtility.HtmlAttributeEncode(cssClass));
html.Append(">");
html.Append(HttpUtility.HtmlEncode(text));
html.Append("</span>");
有人可能会争辩说第二个示例中的代码可以用一种不同的、可能更简洁的方式编写,但这可以被视为 HtmlTextWriter 的一个优势,因为它基本上强制执行一种规范的格式化方式(这再次改进了维护) .
编辑:实际上,我在第二个片段中犯了一个错误,我需要返回并修复响应。这证实了我想表达的观点。
关于c# - 如果您不打算从自适应呈现中获益,那么使用 HtmlTextWriter 有什么好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/573722/
我在自动生成的 javascript 文件中看到了这个: function map(x){ x={x:x}; delete x.x; return x } 我的结论是用来创建一
我是一名优秀的程序员,十分优秀!