【问题标题】:Display element of IEnumerable<> as header in ASP.NET MVC 4将 IEnumerable<> 的元素显示为 ASP.NET MVC 4 中的标头
【发布时间】:2013-05-31 16:50:17
【问题描述】:

我有一个部分视图正在使用一个 ViewModel,该 ViewModel 包含我正在加载到 WebGrid 中的 IEnumerable。 WebGrid 的某些列包含所有行的相同数据,因为这是一个过滤视图。

我正在尝试显示在标题中的所有行中始终包含相同数据的列。我知道我可以用 ViewBag 做到这一点,但如果可能的话,我想避免这种情况。

所以如果我有这样的看法:

@model Test.ViewModels.MyModel

@{
    // WebGrid stuff...
    grid.Column("FileName", "File Name"),
    grid.Column("RecordNumber", "Record Number")
}

我正在尝试这样修改:

@model Test.ViewModels.MyModel

<h1>@Html.DisplayFor(x => x.MyModel.FileName)</h1>

@{
    // WebGrid stuff...
    grid.Column("RecordNumber", "Record Number")
}

这不起作用,因为我无法通过HtmlHelper 深入到 IEnumerable 中的FileName 列。有没有其他方法可以做到这一点?

【问题讨论】:

  • 您可以使用First msdn.microsoft.com/en-us/library/… 或适当的视图模型。
  • @Andreas 首先工作。如果您想将其添加为答案,我可以将其标记为已接受。谢谢!

标签: asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

您可以使用First 来获取可枚举http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx 的第一项,或者使用适当的视图模型来公开每行的标题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    相关资源
    最近更新 更多