2

我的模型的属性之一是对象列表。我在视图上使用 webgrid。现在,我的视图模型将该对象列表转换为字符串,并且我的 webgrid 列显示该字符串。我在 Internet 上搜索了如何在 webgrid 列中显示列表的示例,但没有遇到任何问题。我确实找到了一个博客,该博客演示了如何在 webgrid 列中使用 webgrid,但这并不是我想要做的。我已经尝试过了,但它会产生错误(无法从 lambda 转换为 System.Func。

format: @<text>@foreach (var p in item.PhoneList) { p.PhoneNumber; }</text>

任何帮助,将不胜感激。

4

2 回答 2

1

我只是想出了如何自己做到这一点。简短的回答:您需要一个 HTML Helper。这是制作自己的一个很好的参考

基本上你需要:

  1. 制作一个 Helpers/MyHelper.cs 文件
  2. 使 MyHelper 类静态
  3. 在 MyHelper 类中创建一个具有以下签名的新函数: public static MvcHtmlString MyFunction(this HtmlHelper helper, [input type] myInput)

然后只需添加适当的引用。像这样调用 Helper 内联:

...

MyWebGrid.Column(format: @<text>@Html.MyFunction(@item.[ListToExtract] as List<[ListTypeToExtract>)</text>, header:...

...

于 2013-03-01T14:47:31.683 回答
0

另一种方法是在视图中使用辅助函数。

@helper WriteItems(List<string> myList)
{
    foreach (var myItem in myList)
    {
       <span>@myItem</span>
    }
}

然后从 webgrid 列调用它:

format: item => (WriteItems(item.Labels)
于 2016-05-13T08:00:12.930 回答