2013-02-25 99 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)