我很难使用Razor从我的ViewModel中显示一个字符串

时间:2012-05-30 10:51:53

标签: asp.net-mvc-3 linq razor

我有一个清单:

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。

1 个答案:

答案 0 :(得分:2)

假设您的模型是(视图)模型的列表,您可以通过多种方式访问​​一个模型的属性。

如果列表是剃刀视图的模型:

@Html.DisplayFor(model => model[0].TextThatNeedsDisplayed)

或只从列表中选择一个对象:

@Html.Display(MyModel.First().TextThatNeedsDisplayed)

希望我理解你的问题。