目前我在这个视图中显示枚举名称值:
@foreach (var item in Model.DrawDatesList)
{
<tr id="tableHeadRows">
<td class="tableHeadRowsInside">
@Html.DisplayFor(modelItem => item.LotteryId)
</td>
<td class="tableHeadRowsInside">
@Enum.GetName(typeof(MediaBug.Shared.Enumerators.Days), item.DayId)
</td>
...
一切正常。
但这在foreach pagedList中使用。 我在这样的行动中挽回了它:
var results = ClientRepositoryBuilder
.Instance
.LotteryClientRepository
.GetAllDrawDates()
.ToPagedList(page, this.pageSize);
var model = new LotteryIndexViewModel();
model.DrawDatesList = results;
return this.PartialView(model);
我是否有任何选项不在View中使用@ Enum.GetName(typeof(MediaBug.Shared.Enumerators.Days),item.DayId)并以某种方式在模型中分配它?但我不知道怎么做,因为你必须在foreach中使用它,你不能将它“插入”ToList。
答案 0 :(得分:0)
DrawDatesList是什么类型的对象?让我们说这是IEnumerable。然后DrawDate看起来像这样:
public class DrawDate {
public int DayId { get; set; }
public int LotteryId { get; set; }
public string DayName { get { return Enum.GetName(typeof(MediaBug.Shared.Enumerators.Days), DayId); } }
// other properties here if applicable
}
或者,您可以将上面的DayName替换为:
public string DayName { get { return ((MediaBug.Shared.Enumerators.Days) DayId).ToString(); } }
(只是语义问题。)
在你看来:
@foreach (var item in Model.DrawDatesList)
{
<tr id="tableHeadRows">
<td class="tableHeadRowsInside">
@Html.DisplayFor(modelItem => item.LotteryId)
</td>
<td class="tableHeadRowsInside">
item.DayName
</td>