2

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

网页:

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

代码隐藏

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>
4

2 回答 2

6

这应该这样做:

<pre>@Html.Raw(Model.HtmlString)</pre>
于 2012-06-15T20:25:20.843 回答
0

像这样的东西

<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()

于 2012-06-15T20:33:51.013 回答