1

我正在使用 MVC 3 进行 Web 开发,在这里当我使用自定义帮助程序类创建 HTML 时,它看起来非常难看。

例如:如果我使用助手构建一个列表,它会给我如下结果:

<ul>
<li>some link 1</li>
<li>some link 2</li>
<li>some link 3</li>
<li>some link 4</li>
</ul>

我需要的是,格式化 HTML 如下:

<ul>
   <li>some link 1</li>
   <li>some link 2</li>
   <li>some link 3</li>
   <li>some link 4</li>
</ul>

是否有任何本机方法可以实现这一目标?

4

1 回答 1

1

这无关紧要,因为这只影响您渲染标记的人类读者。我不会否认拥有可读的 HTML 是有用的,但是你能证明花多少时间来让这部分“正确”是合理的?

对此有两个主要解决方案:

第一个 - 处理生成的 HTML

使用这种方法,您可以MvcHtmlString从辅助函数中获取返回值,然后通过 HTML 格式库运行生成的 HTML 片段。这种方法会很慢,因为它必须渲染未缩进的 HTML,然后解析和分析它,然后重新渲染它。如果您使用大量库来重新格式化代码,或者如果您将其发送到外部库进行处理(例如 HtmlTidy 可执行文件),预计它会为您的页面加载时间增加 10 毫秒。

第二个 - 修复 HTML 助手

当然,最好的方法是重新实现您的 HTML 帮助程序,以便缩进代码。幸运的是 HTML Helpers 不会太复杂。复制生成的源代码(使用反射器)并不难,然后将其粘贴到具有正确缩进的新辅助方法中。

当然,这是假设整体<ul>及其所有<li>元素是由单个 Helper 调用生成的,而不是您自己在视图文件中省略缩进。

于 2012-12-17T09:11:20.520 回答