3

使用 EditorTemplates (With Lists) 计算当前列表索引值时有没有办法?例如在这个编辑器模板中

@model myModel

<div class="email-box">
    @Html.TextBoxFor(x=>x.Email)
</div>

我可以算出我要达到的列表中的索引吗?

编辑 ====

看法

 @model IEnumerable<myModel>

 @Html.EditorForModel()

编辑器模板

@model myModel
<div class="email-box" rel="@ViewBag.Index">
    @Html.TextBoxFor(x => x.Email)
</div>
4

2 回答 2

1

在查看可用字段选项时,我实际上已经解决了这个问题。

ViewData.TemplateInfo.HtmlFieldPrefix

返回 [0]、[1] 等。只需将其修剪下来,我们就有了 ID。

于 2013-08-03T20:18:34.080 回答
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)
于 2013-08-03T19:23:37.893 回答