我有一个清单:
public List<MyModel> MyModels { get; set; }
如何使用Razor语法显示该列表中一个对象的一条信息?
我想做类似的事情:
@Html.Display(MyModel.Select(o => o.objectId = selectedObjectVal).FirstOrDefault().TextThatNeedsDisplayed)
但那不编译。我如何正确显示我想要的信息?
当我使用上面的更新代码(从下面的答案中检索)时,我收到以下错误:CS1061:'int'不包含'grade'的定义,并且没有扩展方法'grade'接受类型的第一个参数可以找到'int'(您是否缺少using指令或程序集引用?)。 IntelliSense为我提供了“比较”,“等于”,“GetHashCode”等选项。 。
更新
如果我最后用“.ToString()”代替“TextThatNeedsDisplayed”(并从@ Html.Display更改为@ Html.Raw),它将返回正在搜索的数据 - 字面上存储的是什么“o.objectId = selectedObjectVal”。我不知道为什么 - 不应该试图将整个MyModel变成一个字符串?仍未显示TextThatNeedsDisplayed。
答案 0 :(得分:2)
假设您的模型是(视图)模型的列表,您可以通过多种方式访问一个模型的属性。
如果列表是剃刀视图的模型:
@Html.DisplayFor(model => model[0].TextThatNeedsDisplayed)
或只从列表中选择一个对象:
@Html.Display(MyModel.First().TextThatNeedsDisplayed)
希望我理解你的问题。