ASP.Net MVC 如何将 HTML 标记替换为浏览器中不符的内容
本文关键字:浏览器 替换 MVC Net HTML ASP | 更新日期: 2023-09-27 17:56:01
如果你生成一个HTML字符串,比如
ViewBag.FinalHTML="<a href='"http://stackoverflow.com'">StackOverFlow</a>";
然后尝试使用以下代码在视图中显示它:
This is the best Q&A for programming questions: @ViewBag.FinalHTML
那么结果将是这样的:
This is the best Q&A for programming questions: <a href="http://stackoverflow.com">StackOverFlow</a>
(我知道我怎样才能做到这一点。我还有一个问题!
ASP.Net MVC是如何做到的?
@
函数使用 HttpUtility.HtmlEncode
方法对传递给它的所有内容进行安全编码。
如果不希望发生此自动编码,请使用 @Html.Raw
方法:
@Html.Raw(ViewBag.FinalHTML)
显然,通过这样做,您应该确保此FinalHTML
绝对不会来自用户输入,而是由您在服务器上生成的。否则,您将在网站上打开一个巨大的XSS漏洞。