如何将viewbag显示为html?

好的,对于ASP.Net MVC来说还是新手,所以如果这是一个愚蠢的问题我很抱歉,但我如何将ViewBag的值显示为HTML。 例如,如果ViewBag.SomeMessage包含以下文本:

Test

Test

Test

Test

Test

TEST

我将如何实际将页面呈现为普通HTML? 或者有一种更简单的方法来实现这一点,我完全失踪了?

干杯!

每个人在使用@Html.Raw()都是正确的,但我想指出要小心这一点,因为它可能会使您的网站容易受到XSS漏洞的影响。

我会将@Html.Raw(ViewBag.SomeMessage)与Microsoft的Anti-XSS Library结合使用 ,以确保不会引入任何漏洞。

编辑: Anti-XSS库的优势(如果你还没有看过)是它有一个批准的标记的白名单(如

等),以便只有批准的标记将是未编码。

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的文档 。