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

カスタム エディター テンプレートは、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 に答える