使用TempData传递html? [MVC2]

时间:2010-12-30 19:37:53

标签: asp.net asp.net-mvc-2

我最近发现TempData在处理控制器中的逻辑后将消息传递回视图。但是当我尝试传递带有消息的html时,它会渲染实际的标签,而不是在页面呈现时将它们解释为html。

有没有办法解决这个问题,还是我的接近有缺陷?

TempData["Message"] = "<span style='color:red;'>There was a problem moving the files.</span>";

以下是浏览器中显示的内容:

<span style='color:red;'>There was a problem moving the files.</span>

谢谢!

4 个答案:

答案 0 :(得分:12)

您可以在TempData中解码html,如下所示:

@Html.Raw(TempData["Message"].ToString())

答案 1 :(得分:1)

使用<%=代替<%:来处理字符串而不对其进行解码。

答案 2 :(得分:0)

我认为可能是自动编码值;您应该能够调用Server.HtmlDecode将其解码回HTML。

HTH。

答案 3 :(得分:0)

您可以在“查看”文件中更改样式,如下所示:

@if (TempData["Message"] != null)
     {
      <span style="color:Red;">  @TempData["Message"] </span>
}