如何在我的 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 />'.