【问题标题】:How to render HTML in a pre tag in ASP.NET MVC如何在 ASP.NET MVC 的 pre 标记中呈现 HTML
【发布时间】:2012-06-15 20:21:59
【问题描述】:

ASP Classic (aspx) 网络表单中,我可以在 PRE 标记中呈现整个 HTML,如下所示:

网页:

<pre><asp:label id="ContentBox" runat="server"></asp:label></pre>

Code-behind:

ContentBox.Text = html string;

然后整个 HTML 就正确地呈现在了网页上。

我想知道如何在 ASP.NET MVC Razor 视图中做同样的事情。现在,我看到的是一个原始的 HTML 字符串。

HTML 字符串可能是这样的:

<?xml version="1.0" encoding="utf-8"?>
<html>
  <head>
    <title>A title</title>
    <style>
          .td_header {background-color: white; text-align:left}
          .table_header {background-color: white; width: 100%}
        </style>
  </head>
  <body>
    <table style="table_header" frame="void">
      <tr>
        <td class="td_header">
          <img src="logo_v3.jpg" alt="Helping" width="261" height="50" />
        </td>
      </tr>
    </table>
  </body>
</html>

【问题讨论】:

  • 提交您的代码,然后我们就知道了。我们不知道你到底是什么东东。

标签: html asp.net-mvc pre


【解决方案1】:

应该这样做:

<pre>@Html.Raw(Model.HtmlString)</pre>

【讨论】:

  • 非常感谢。它主要工作。我只需要解决一些小问题。这绝对是这样做的方法。
【解决方案2】:

类似的东西

<pre>
 @Html.LabelFor(m=>m.ContentBox)
<pre>

这假设您的模型中有一个 contentbox 属性

这将输出类似

<pre>
 <label> blah blah </label>
<pre>

但我认为您认为您需要 asp 控件来呈现数据......不是这样。

在您的控制器操作方法中,将您的内容放入视图包中

@ViewBag.ContentBox ="Hello World";

根据您的观点使用它。

<pre>
     @ViewBag.ContentBox
<pre>

应该按照您的预期进行渲染。

如果您要呈现 HTML,则需要将其包装在 @html.raw() 中

【讨论】:

    猜你喜欢
    • 2014-08-26
    • 1970-01-01
    • 2023-04-03
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2014-01-19
    • 2014-10-15
    相关资源
    最近更新 更多