2

ASP Classic (aspx) Web フォームでは、次のように HTML 全体を PRE タグでレンダリングできます。

ウェブページ:

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

コードビハインド:

ContentBox.Text = html string;

次に、HTML 全体が Web ページに正しくレンダリングされます。

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 に答える