我有两个html字符串:
<script type="text/javascript">alert("s");</script>
1<br>2<br>3
用户输入这些,然后我存储在我的数据库中。然后,我再次从数据库加载主题并在视图中编写主题以向用户显示主题。
我是这样做的:
// 1
@MvcHtmlString.Create("<script type="text/javascript">alert("s");</script>");
// 2
@MvcHtmlString.Create("1<br>2<br>3");
以下是我的观点结果:
1. A javascript dialog box pops up and shows the alert to the user.
2. 1
2
3
在示例1中,用户可以输入脚本并显示javascript警报,用户可以看到以下字符串:
"<script type="text/javascript">alert("s");</script>"
没关系,但在示例2中,<br>
标记不起作用,用户会看到:
1<br>2<br>3
如何获得这些输出:
1: "<script type="text/javascript">alert("s");</script>"
2: 1
2
3
请注意,我不想删除用户数据的任何部分,因为如果用户是开发人员并希望显示脚本语法,则应该允许他使用。
答案 0 :(得分:0)
有很多方法可以做到这一点,我喜欢使用@ Html.Raw
@Html.Raw("1<br>2<br>3")
用于显示html,输出将是
1
2
3
@Html.Raw("<script>alert('s');</script>").ToHtmlString()
用于显示文本,通过添加ToHtmlString(),输出将是
<script>alert('s');</script>