我如何显示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?还是有一种更简单的方法来实现这一点,我完全错过了?

干杯!

我如何显示viewbag作为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.