如何在webgrid列中呈现列表

时间:2013-02-25 18:22:25

标签: asp.net-mvc-4 webgrid

我的模型有一个属性,一个对象列表。我在视图上使用webgrid。现在,我的视图模型将对象列表转换为字符串,我的webgrid列显示字符串。我在互联网上搜索了如何在webgrid列中显示列表的示例,但没有涉及任何内容。我找到了一个博客,演示了如何在webgrid列中使用webgrid,但这并不是我试图做的。我试过这个,但它产生了一个错误(无法从lambda转换为System.Func。

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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我只想弄清楚自己该怎么做。简答:您需要一个HTML帮助程序。这是一个非常good reference on making your own

基本上你需要:

  1. 制作助手/ MyHelper.cs文件
  2. 使MyHelper类静态
  3. 使用以下签名在MyHelper类中创建一个新函数: public static MvcHtmlString MyFunction(this HtmlHelper helper, [input type] myInput)
  4. 然后只需添加适当的引用。像这样直接调用Helper:

    ...

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

    ...

答案 1 :(得分:0)

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

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

然后从webgrid列调用它:

format: item => (WriteItems(item.Labels)