如何在我的 ASP.NET MVC 应用程序中允许选择性 HTML 输入?
How do I allow selective HTML input in my ASP.NET MVC application?
我希望最终用户在我的 ASP.NET MVC 应用程序的文本区域中输入不带任何格式的文本。但是,我想保留他们在输入文本时创建的任何换行符或段落。
如果我在不允许 HTML 输入的情况下使用文本区域,默认情况下,当将此文本保存到数据库或读回以显示在用户界面上时,不会保留换行符和段落。
如果我AllowHTML
,我运行代码注入的风险。
我能想到的实现这个的唯一其他方法是 不是 AllowHTML
而是有一个自定义属性,该属性只检查允许 <p>
标签和 <br />
标签,但是为了实现它,尽管看起来很简单,我将不得不维护一个包含所有可能的 HTML 标签的字典,并且由于网络的性质如此不稳定,天知道来自 CSS 或其他什么的其他语法标记。
我是不是把问题复杂化了?有开箱即用的东西还是有更简单的方法来实现它?
我正在使用 ASP.NET MVC 5.2.3 目标 ASP.NET 4.5.
textarea
将换行符保留为 \n
个字符。之后在 textarea 元素之外显示值作为页面的一部分时,'\n'
字符需要替换为 '<br />'
.
我希望最终用户在我的 ASP.NET MVC 应用程序的文本区域中输入不带任何格式的文本。但是,我想保留他们在输入文本时创建的任何换行符或段落。
如果我在不允许 HTML 输入的情况下使用文本区域,默认情况下,当将此文本保存到数据库或读回以显示在用户界面上时,不会保留换行符和段落。
如果我AllowHTML
,我运行代码注入的风险。
我能想到的实现这个的唯一其他方法是 不是 AllowHTML
而是有一个自定义属性,该属性只检查允许 <p>
标签和 <br />
标签,但是为了实现它,尽管看起来很简单,我将不得不维护一个包含所有可能的 HTML 标签的字典,并且由于网络的性质如此不稳定,天知道来自 CSS 或其他什么的其他语法标记。
我是不是把问题复杂化了?有开箱即用的东西还是有更简单的方法来实现它?
我正在使用 ASP.NET MVC 5.2.3 目标 ASP.NET 4.5.
textarea
将换行符保留为 \n
个字符。之后在 textarea 元素之外显示值作为页面的一部分时,'\n'
字符需要替换为 '<br />'
.