MVC Razor无法在@foreach循环内正确呈现HTML

时间:2019-01-24 19:45:55

标签: c# html asp.net-mvc razor twitter-bootstrap-3

当您将鼠标悬停在表格数据上并尝试使用HTML设置其格式时,我试图显示文本。我将文本存储在标题中。将鼠标悬停在上面时,我可以使数据显示正常,但是对于我来说,我无法正确显示HTML。举个例子,如果我想在标题中使用粗体,当我将鼠标悬停在标题上时,它看起来像<b>text bold</b>。该修复程序似乎应该很简单,但我无法弄清楚。我确实发现有post个用户遇到了同样的问题,但是没有真正可靠的解决方案。

如何使HTML在@foreach循环中正确呈现?

<td data-trigger="hover" data-toggle="popover" data-placement="top" data-original-title="@Html.DisplayFor(modelItem => item.Report_Name)" data-content="@foreach (var t in item.report_change_log_list) {  @Html.Raw("<div style='text-align: left'><b>" + t.effective_date.ToString("MM/dd/yyyy") + "</b> : " + t.change.ToString() + "</br></br>" + "</div>")  }">
                                            @if (item.report_change_log_list.Any())
                                            {
                                                @Html.Raw("<i class='fa fa-stack-exchange fa-2x' style='color: #205686' aria-hidden='true'></i>");
                                            }
                                        </td>

1 个答案:

答案 0 :(得分:1)

您需要将data-html="true"添加到td标记中,如下所示:

<td data-html="true" data-trigger="hover" data-toggle="popover" data-placement="top" data-original-title="@Html.DisplayFor(modelItem => item.Report_Name)" data-content="@foreach (var t in item.report_change_log_list) {  @Html.Raw("<b>Bold Doesn't work</b>")  }">
    @if (item.report_change_log_list.Any())
    {
        @Html.Raw("<i class='fa fa-stack-exchange fa-2x' style='color: #205686' aria-hidden='true'></i>");
    }
</td>

Here是一个小提琴,说明了这一点