使用EditorTemplates(With Lists)计算当前列表索引值是否有办法?例如,在此编辑器模板中
@model myModel
<div class="email-box">
@Html.TextBoxFor(x=>x.Email)
</div>
我可以找出列表中的索引吗?
EDIt ====
查看
@model IEnumerable<myModel>
@Html.EditorForModel()
编辑模板
@model myModel
<div class="email-box" rel="@ViewBag.Index">
@Html.TextBoxFor(x => x.Email)
</div>
答案 0 :(得分:1)
自定义编辑器模板可以在从Html扩展方法调用时接受值,这些值将专门添加到ViewBag
的视图中。您可以使用它将元素的索引发送到该视图
在父视图中
@{
ViewBag.Title = "MyView";
var index = 0;
}
<h2>My View</h2>
@foreach (var item in Model)
{
<div>
@Html.EditorFor(m => item, new { Index = index++ })
</div>
}
在编辑器模板中
@Html.TextBoxFor(m => string.Format("({0} - {1}", ViewBag.Index, m.Description)
答案 1 :(得分:1)
我实际上在查看可用的字段选项时解决了这个问题。
ViewData.TemplateInfo.HtmlFieldPrefix
返回[0],[1]等。可以减少它,我们有ID。