0

「ニュース」ページを表示していますが、顧客が簡単な HTML を出力できるようにしたいと考えています。

私の見解は次のようになります。

@using SuburbanCustPortal.SuburbanService

    <br />

    @foreach (var item in (IEnumerable<TokenNews>) ViewBag.News)
    {
      <div class="fulldiv">
        <fieldset> 
          <legend>@item.Title</legend>
          <div>
            @item.Body
          </div>    
        </fieldset>
      </div>
    }

これを行うと、html はブラウザーによってレンダリングされず、html がテキストとして表示されるだけです。

ブラウザがレンダリングする場所にhtmlを出力する方法はありますか?

4

1 に答える 1

5

どの部分がテキストとして表示されているかを正確に指定していませんでしたが、それが である場合は、代わりに指定item.Bodyしてください。@Html.Raw(item.Body)これにより、文字列が IHtmlString に変換されます。その目的は、Razor に、このことをそのまま出力しても安全であることが保証されており、XSS 攻撃のような厄介なものが含まれていないことを伝えることです (Html.Raw を使用するときにこれを確実にすることがあなたの仕事です)。IHtmlString でないものはすべて、Razor によって自動的にエスケープされます。

于 2012-12-30T19:03:27.183 に答える