问候每个人
我有模型视图,其中包含我在主控制器中初始化的方法集合,但是当我尝试在不使用foreach
的情况下获取X元素时它不起作用,我在视图中尝试了这个
@Html.Display(Model.Intel.where(x => x.Item2.Equals("Test"))
但没有任何表现。如果有人有想法我会对它持开放态度。
Intel
是Collection<Tuple<string, string>>
答案 0 :(得分:0)
如果Model.Intel是一个集合,并且您希望将单个字符串项传递给@ Html.Display,那么您需要返回一个字符串。
Model.Intel.Where([predicate])
返回IQueryable
尝试这样的方法来获取项目,然后寻址一个属性或者去上面的ToString():
Model.Intel.Where(x => x.Item2.Equals("Test")).Single()
OR
Model.Intel.Where(x => x.Item2.Equals("Test")).Single().StringPropertyOfSingleObject
答案 1 :(得分:0)
你真的不需要使用Display ..除非你想创建一个显示模板来显示值..只需将值添加到你的视图
@Model.Intel.Where(a => a.Item2 == "Test")
.Select(a => string.Format("({0}, {1})",a.Item1, a.Item2))
.Aggregate((i, j) => i + ", " + j)
假设您可能有两个Item2 =&#34; Test&#34;,这会输出类似
的内容(1 - Test), (2 - Test)
您还可以更改string.Format以将输出包装在html标记中。只需确保使用@ Html.Raw()来显示它。
<ul>
@Html.Raw(Model.Intel.Where(a => a.Item2 == "Test")
.Select(a => string.Format("<li>{0} - {1}</li>",a.Item1, a.Item2))
.Aggregate((i, j) => i + "" + j))
</ul>
会输出