You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC中循环内使用@Html.Raw显示富文本的问题

问题描述

我在index.cshtml中有如下代码:

@foreach (var item in Model) {
  <p style="padding: 0; margin: 0">
   @Html.DisplayFor(modelItem => item.Translation)
  </p>
}

由于item.Translation字段是用TinyMCE富文本编辑器编辑的,我希望通过@Html.Raw显示原始富文本内容,预期效果为:

" He said: "Come", so it came. Then He said: "Go", so it went "

但实际得到的是转义后的HTML代码:

> <p>He said: <em>"Come"<em>, so it came. Then He said: "Go", so it
> went<p>

我尝试了以下两种写法,均未解决问题:
写法1:

@foreach (var item in Model) {
  <p style="padding: 0; margin: 0">
   @Html.Raw(modelItem => item.Translation)
  </p>
}

写法2:

@foreach (var item in Model) {
  <p style="padding: 0; margin: 0">
   @Html.Raw(Model.Translation)
  </p>
}

请问如何正确使用@Html.Raw在循环中显示原始富文本内容?


正确解决方案

直接将循环中当前迭代项的Translation属性作为参数传入@Html.Raw即可,代码如下:

@foreach (var item in Model) {
  <p style="padding: 0; margin: 0">
    @Html.Raw(item.Translation)
  </p>
}

错误原因说明

  • 第一种写法错误:给Html.Raw传递了lambda表达式而非实际字段值,导致它把表达式本身当成内容输出,而非解析后的富文本。
  • 第二种写法错误:循环中应该使用当前迭代的item对象,而非直接访问集合Model的Translation属性——Model是整个集合,不存在该属性,会导致编译错误或空值输出。

内容的提问来源于stack exchange,提问作者Animimo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 06:29:58