web-dev-qa-db-ja.com

モデルからのHTML文字列をMVCRazorビューで表示する

改行BRタグ付きのHTML文字列を返すモデルファイルがありますが、そのHTMLをブラウザに表示するにはどうすればよいですか?問題は、代わりに改行を入れ、タグ自体がUIに表示されることです。

モデルをHtml.Raw(modelItem => item.Speaking)内に配置しようとしましたが、内部の文字列を期待して機能せず、デリゲート型ではないためラムダ式を型 'string'に変換できません

以下は私が試したコードとコメントです。

<div>
  @{          
     string strTest = "<br/>Line 1 <br/> Line 2<br>";
     @Html.Raw(strTest); //This works and display as expected
     @MvcHtmlString.Create(strTest); //This works and display as expected       

     @Html.Raw(Html.DisplayFor(modelItem => item.Speaking)); //This doesn't work, its show the <br />  on the screen     
     @MvcHtmlString.Create(Html.DisplayFor(modelItem => item.Speaking).ToString());   //This doent work, its show the <br />  on the screen  
     @Html.Raw(modelItem => item.Speaking) //This throw error Cannot convert lambda expression to type string                                     
    }

 </div>

ヘルプや提案に感謝します。前もって感謝します!

8

これを試して :

@(new HtmlString(stringWithMarkup))

hTMLヘルパーを作成することもできます!:

@helper RawText(string s) {
    @(new HtmlString(s))
}
13
Oualid KTATA

MVC4

@Html.Raw(modelItem => item.Speaking)を使用する代わりに

@Html.Raw(@Model.Speaking.ToString())を使用できます

それは私のために働きます、そして私はこれが他の誰かにも役立つことを願っています

5
Dashrath

DisplayFormodelItem =>の両方を省略できます。

@Html.Raw(item.Speaking)
2
MGOwen