2013-02-25 44 views
1

我的模型具有其中一个属性,即对象列表。我在视图上使用webgrid。现在,我的视图模型将对象列表转换为字符串,而我的webgrid列显示字符串。我在互联网上搜索了如何在webgrid列中显示列表的例子,但是还没有涉及任何事情。我确实发现了一个博客,演示了如何在webgrid列中使用webgrid,但这不完全是我想要做的。我已经试过这一点,但它会产生一个错误(不能从拉姆达转换为System.Func。如何在webgrid列中呈现列表

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

任何帮助,将不胜感激。

回答

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)

然后,只需添加相应的引用。打电话给助手内嵌这样的:

...

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

...

+0

算不上什么我所期待的,但我想没有办法来完成我试图短的这一点。我想我会坚持在我的ViewModel中创建字符串。我会接受这个答案。 – 2013-03-01 17:44:30

0

另一种方法是在视图中使用一个辅助功能。

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

然后从塔的WebGrid叫它:

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