我是 ASP.NET Core 開發的新手。我正在尋找類似于在 ASP.NET Core 視圖中使用回圈迭代數的內置方法。
我做了一些研究,發現了一些解決方案,比如在回圈外創建 int 變數,然后在回圈內遞增。
我想索引每個用戶。
這是我的代碼:
@foreach (var item in l_IEnumerableModUserQuery)
{
<tr>
<td>
<!-- Here I want to add Iteration No. here-->
</td>
<td>
<a href="#">
@item.Pr_FullName
</a>
</td>
<td>@item.Pr_Email</td>
<td>@item.Pr_ContactNo</td>
</tr>
}
uj5u.com熱心網友回復:
您可以使用簡單的 for 回圈來獲取索引:
//use .Count if it is a List or .Count() with Linq to get the boundary.
@for(var i = 0; i < l_IEnumerableModUserQuery.Count; i )
{
<tr>
<td>
@i.ToString();
</td>
<td>
<a href="#">
@l_IEnumerableModUserQuery[i].Pr_FullName
</a>
</td>
<td>@l_IEnumerableModUserQuery[i].Pr_Email</td>
<td>@l_IEnumerableModUserQuery[i].Pr_ContactNo</td>
</tr>
}
Thomas Levesque 在他的博客上有一個簡潔的方法,使用擴展方法:
public static IEnumerable<(T item, int index)> WithIndex<T>(this IEnumerable<T> source)
{
return source.Select((item, index) => (item, index));
}
這將導致:
@foreach (var (item, idx) in l_IEnumerableModUserQuery.WithIndex())
{
<tr>
<td>
@idx
</td>
<td>
<a href="#">
@item.Pr_FullName
</a>
</td>
<td>@item.Pr_Email</td>
<td>@item.Pr_ContactNo</td>
</tr>
}
著眼于擴展方法方法,您也可以修改視圖模型,并將索引作為屬性包含在控制器/處理程式中的模型中,或者在創建模型的任何地方:
var l_IEnumerableModUserQuery =
someSource.Where(x => ...)
.Select((x, index) => new MyModel {
Index = index,
Pr_Email = xxx,
Pr_Contact = xxy,
/* ... rest of model */
});
return l_IEnumerableModUserQuery;
在此之后,您可以像訪問視圖中的任何其他屬性一樣訪問索引:
<a href="#">
@item.Index
</a>
uj5u.com熱心網友回復:
你可以找到專案的索引
@{
int indx=0;}
@foreach (var item in l_IEnumerableModUserQuery)
{
<tr>
<td>
@l_IEnumerableModUserQuery.IndexOf(item)
</td>
<td>
<a href="#">
@item.Pr_FullName
</a>
</td>
<td>@item.Pr_Email</td>
<td>@item.Pr_ContactNo</td>
</tr>
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/341463.html
下一篇:.netcore模型中的元素串列
