我有一个迭代集合并调用集合DisplayFor()
中每个元素的视图。
我需要手动迭代(而不是将集合传递给 DisplayFor),以便告诉模板是否应该绘制列表中的中断。列表中的项目将只有 2 种类型,由它们排序,所以我只需要显示这个中断一次。
找到并正确调用了我的模板。
我可以看到它正确生成的 HTML,即:DisplayFor().ToHtmlString()
我可以将此 HTML 设置为范围变量,即:var html = DisplayFor().ToHtmlString()
..
但即使Html.Raw(html)
没有在浏览器中呈现它 - HTML 已经消失了。
这是怎么回事?
var renderBreakInList = Model.Items.Any(x => x.IsSomeType);
foreach(var item in Model.Items)
{
var renderBreak = renderBreakInList && item.IsOtherType;
Html.DisplayFor(x => item, new { renderBreak = renderBreak });
if (renderBreak)
{
renderBreakInList = false;
}
}