我的控制器代码如下
ViewBag.Districts = (from a in _dbContext.DISTRICTS
select new ComboItem {
ID = a.DISTRICT_ID,
Name = a.DISTRICT_NAME
}
).ToList();
我的Razor View代码如下
@foreach (var dist in ViewBag.Districts)
{
if (item.DISTRICT_ID == dist.ID)
{
@dist.Name
}
}
有没有一种方法可以在ViewBag.DistrictsViewBag.Districts.where(m=>m.ID==item.DISTRICT_ID.
或linq表达式中找到项目,以便避免循环。有人帮助我,不胜感激。
Viewbag
是动态的,因此编译器将无法识别其实际类型,因此您需要像这样的显式类型转换才能使用Enumerable方法:-
((IEnumerable<ComboItem>)ViewBag.Districts).Where(x => x.ID == item.DISTRICT_ID);
我假设您想在自己的中使用它View
,而且foreach
如果没有显式强制转换,则您发布的循环将无法正常工作:-
@foreach (var dist in (IEnumerable<ComboItem>)ViewBag.Districts)
{
if (item.DISTRICT_ID == dist.ID)
{
@dist.Name
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句