在MVC Razor视图中显示模型中的HTML字符串

Sré*_*áîr 8 asp.net-mvc html-helper razor asp.net-mvc-5

我有一个模型字段,返回带有换行符BR标记的HTML字符串,但如何在浏览器上显示该HTML?问题在于改为换行,标签本身显示在UI上

我试图将模型放在Html.Raw(modelItem => item.Speaking)中,但它从不工作,因为它期望内部的字符串,并且不能将lambda表达式转换为类型'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>
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助或建议.提前致谢!

Oua*_*ATA 13

试试这个 :

@(new HtmlString(stringWithMarkup))
Run Code Online (Sandbox Code Playgroud)

你也可以创建一个HTML帮助器!:

@helper RawText(string s) {
    @(new HtmlString(s))
}
Run Code Online (Sandbox Code Playgroud)

  • 我只是不得不使用:)谢谢那些看了一下查询的人!@ Html.Raw(item.Speaking)我得到了答案,http://forums.asp.net/p/2004322/5760921.aspx?p = True&t = 635442239935208188&pagenum = 1 (3认同)

MGO*_*wen 6

您可以省略DisplayFormodelItem =>,因此:

@Html.Raw(item.Speaking)
Run Code Online (Sandbox Code Playgroud)


Das*_*ath 5

MVC4中

而不是使用 @Html.Raw(modelItem => item.Speaking)

您可以使用 @Html.Raw(@Model.Speaking.ToString())

它适用于我,我希望这也可以帮助别人