繁体   English   中英

从Viewbag.List查找项目

[英]Find item from Viewbag.List

我的控制器代码如下

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.Districts中找到项目,例如ViewBag.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
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM