(漂亮的新剃刀。以下是嚴重的僞編纂並從我的代碼提取。我可能沒有正確的術語,或者確切地知道哪些部分是核心與自定義代碼。)指數
我想訪問for-loop項目中每個項目的順序/索引。 (即項目#1我可以參考'1'和項目#2我可以參考'2'等)所以我可以使用它排序像這樣(我不在乎如何我明白了,只是這我明白了):
item.cshtml:
@model myWidgetViewModel
<a href="foo"
@TrackingHelper.SetInfo(new ClickTrackInfo {
item = @Model.Name,
index= @Model.idx
})
>
@Model.Name
</a>
wrapper.cshtml
@model myWidgetViewModel
@foreach (var item in Model.myWidgetItems)
{
@Html.Partial(item.View, item)
}
從概念上講,我試圖達到的目的是這樣的:
@model myWidgetViewModel
@{int idx = 0;}
@foreach (var item in Model.myWidgetItems)
{
@Html.Partial(item.View, item, idx)
idx++;
}
但當然,這是行不通的(@ Html.Partial只接受2個參數)。
你可以改變模型部分期望,比如說'myWidgetIndexedViewModel',有兩個字段:'myWidgetViewModel model'和'int index'。從主視圖傳遞這將是微不足道的,然後 – Andrei
爲什麼你需要在部分視圖中的索引? – ps2goat
您是否嘗試將public int屬性添加到myWidgetItem定義中,並在調用@ Html.Partial之前將其設置在foreach塊中? –