我正在使用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>
有没有可用的本地方法来实现这一目标?
答案 0 :(得分:1)
这应该无关紧要,因为这只会影响渲染标记的人类读者。我不会否认拥有可读的HTML是有用的,但是你有多少时间可以证明花费这些工作来使这部分“正确”?
这有两个主要决议:
使用此方法,您将从辅助函数返回MvcHtmlString
,然后通过HTML格式库运行生成的HTML片段。这种方法非常慢,因为它必须呈现未缩进的HTML,然后解析并分析它,然后重新呈现它。如果您使用繁重的库重新格式化代码,或者将其发送到外部库进行处理(例如HtmlTidy可执行文件),则预计它会在页面加载时间上增加10毫秒。
当然,最好的方法是重新实现HTML帮助程序,以便缩进代码。幸运的是,HTML帮助程序往往不太复杂。复制生成的源(使用Reflector)并不难,然后将其粘贴到具有正确缩进的新辅助方法中。
当然,这是假设整个<ul>
及其所有<li>
元素都是由一个Helper调用生成的,而不是您在视图中自己省略缩进文件。