在某个地方,我不得不使用 linq 语句从我的模型中选择一个控制器在 Index ActionResult 中返回的结果集。为此,我在 Google 上搜索了“如何在视图剃须刀中使用 linq”,我得到了结果,并且我的应用程序工作正常,但我看到一些建议说“不要在视图中使用 Linq”。为什么我们不应该使用它,但它是可能的?如果我不想使用它,解决方案是什么?
这是我的查询:
@using System.Linq
@{var lst = (from x in item.Showtimes select x.ShowtimeDate).Distinct();}
@foreach (var showTimeItem in lst)
{
<option value="@showTimeItem">@showTimeItem</option>
}
更新
这是我的控制器索引
public ActionResult Index()
{
MelliConcert.Models.MelliConcertEntities db = new Models.MelliConcertEntities();
var listOfConcerts = (from x in db.Concert
orderby x.ID ascending
select x).Take(15).ToList();
return View(listOfConcerts);
}
我在这样的视图中使用它:
@model IEnumerable<MelliConcert.Models.Concert>
@foreach (var item in Model)
{
@if (item.OpenedForFirst == true)
{
//...
}
//Some Codes
@using System.Linq
@{var lst = (from x in item.Showtimes select x.ShowtimeDate).Distinct();}
@foreach (var showTimeItem in lst)
{
<option value="@showTimeItem">@showTimeItem</option>
}
}
我的 linq 语句放在这个循环中。我该怎么办?