【发布时间】:2010-10-06 04:31:41
【问题描述】:
Html.Encode 似乎只是简单地调用HttpUtility.HtmlEncode 来用它们的转义序列替换一些 html 特定字符。
但是,这并没有考虑如何解释新行和多个空格(标记空白)。所以我提供了一个文本区域供用户输入纯文本信息块,然后在另一个屏幕上显示该数据(使用Html.Encode),新的行和间距将不会被保留。
我认为有 2 个选项,但也许有人可以提出更好的第 3 个选项。
一种选择是只编写一个使用 HtmlEncode 的静态方法,然后用<br> 替换结果字符串中的新行,用&nbsp; 替换多个空格组
另一种选择是在我的样式表中弄乱white-space: pre 属性 - 但是我不确定当 Html 辅助方法包括新行和制表符以使页面源更漂亮时这是否会产生副作用。
是否有第三个选项,例如全局标志、事件或方法覆盖,我可以使用它来更改 html 编码的完成方式,而无需重做 html 辅助方法?
【问题讨论】:
标签: c# asp.net-mvc newline html-encode