我如何显示viewbag作为html
本文关键字:viewbag 作为 html 显示 何显示 | 更新日期: 2023-09-27 18:07:27
好的,对ASP来说还是个新手。Net MVC,所以我很抱歉,如果这是一个愚蠢的问题,但我如何去显示一个ViewBag的值作为HTML。例如,如果ViewBag。SomeMessage包含以下文本:
<h3>Test</h3><p>Test</p><p>Test</p><p>Test</p><p>Test</p><p>TEST</p>
我该如何让页面实际呈现为正常的HTML?还是有一种更简单的方法来实现这一点,我完全错过了?
干杯!
使用@Html.Raw()
每个人都是正确的,但我想指出要小心,因为它可以使您的站点容易受到XSS漏洞的影响。
我会将@Html.Raw(ViewBag.SomeMessage)
与微软的Anti-XSS库结合起来,以确保您不会引入任何漏洞。
编辑:Anti-XSS库的优点(如果你还没有看过它)是它有一个批准的标记白名单(如<b>
, <h3>
等),所以只有批准的标记将不编码。
Edit2: 下面是一个示例:
您将使用Raw
方法:
@Html.Raw(ViewBag.SomeMessage)
我认为你可以这样做:
@Html.Raw(ViewBag.SomeMessage)
@Html.Raw(ViewBag.SomeHtmlProperty)
话虽如此,这里是我的免责声明:不要使用ViewBag。使用强类型视图和视图模型。ViewBag/ViewData是ASP的毒瘤。. NET MVC应用程序
将数据作为html编码的字符串放到ViewBag中,该字符串不应再次编码。
ViewBag.myBag = MvcHtmlString.Create(myCode ?? string.Empty);
然后使用
@ViewBag.myBag
MvcHtmlString.