【问题标题】:Using TempData to pass html? [MVC2]使用 TempData 传递 html? [MVC2]
【发布时间】:2010-12-30 19:37:52
【问题描述】:

我最近发现 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>

谢谢!

【问题讨论】:

  • 您只显示了问题的一方面。真正有启发性的部分是提取临时数据并显示它的部分。你能显示那个代码吗?
  • 不,我正在使用 TempData。在视图方面,我只是在做:,但 Keith 让我将其更改为 ,一切都很好!

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


【解决方案1】:

您可以像这样在 TempData 中解码您的 html:

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

【讨论】:

  • 警告:空引用异常
  • 首先检查是否为空。喜欢下面的答案
【解决方案2】:

使用&lt;%= 代替&lt;%: 处理字符串而不解码它。

【讨论】:

    【解决方案3】:

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

    HTH。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2017-05-20
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        • 2020-09-02
        • 2015-01-21
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多