ASP.Net MVC中的Linq和DisplayFor

时间:2014-02-19 19:02:33

标签: c# asp.net asp.net-mvc linq razor

我的模型有ICollection个电话号码。在我看来,我想显示标记为Primary的记录的值。

@Html.DisplayFor(model => model.Telephones.Where(a=>a.Primary==true).Number)

Linq语法中不允许.Number。如何使上述线路工作或者更确切地说显示数字的正确方法是什么?

我可能应该在控制器中执行逻辑并将值放在视图模型中,但看起来这应该是可行的。

1 个答案:

答案 0 :(得分:3)

Where扩展方法返回IEnumerable<T>。如果您只想要满足条件的第一项,请使用First

@Html.DisplayFor(model => model.Telephones.First(a => a.Primary).Number)

如果您还需要确保集合中的恰好一个项目满足条件(否则抛出异常),请考虑使用Single

@Html.DisplayFor(model => model.Telephones.Single(a => a.Primary).Number)