请问如何在ASP.NET MVC视图中实现此目的:分配第一,第二,第三等从最高学生分数到最低分数。如果两个或两个以上的学生得分相同,他们会获得相同的位置,而下一个学生获得下一个位置。请注意,分数存储在我的StudentAssessment表中。
答案 0 :(得分:0)
您可以在视图上简单地使用两个局部变量来存储列表中的排名和上一个分数。每当previousScore和当前得分值不同时,您可以将等级计数器增加1。
我认为你的观点是强类型的,并从其行动中得到一个得分列表。
请检查以下代码。
@{
int rank = 0, previousScore=0;
}
@foreach(var item in Model.OrderByDescending(a=>a.score)) {
if(item.score !=previousScore) {
rank += 1;
}
previousScore = item.score;
<span> @rank) @item.name , @item.score </span>
<br />
}
答案 1 :(得分:-2)
返回视图返回时如果您的学生类具有得分attr,那么逻辑将采用Razor语法
@(Yourlist) = (Yourlist).OrderBy(i => i.score);
<ul>
@{foreach (var i in Yourlist)
<li>@(i.name + " " + i.score )</li>
}
</ul>
希望有所帮助