2010-05-10 101 views
2

我與Telerik的MVC標籤欄控制工作,我有一個問題,但我懷疑的問題更我的如何正確使用Lambda表達式和MVC傭工的無知,真正Telerik的特異性不。的RenderPartial不能轉換爲字符串

我的助手呼籲是這樣的:

<% Html.Telerik().TabStrip() 
     .Name("BusinessDetailsTabs") 
     .Items(parent => 
     { 
      parent.Add() 
       .Text("Facilities") 
       .Content(() => 
       {%> 
        <%= Html.RenderPartial("~/Views/Shared/DisplayTemplates/BusinessRelations/FacilityGrid.ascx", new FacilitiesViewModel {Entities = Model.Facilities}) %> 
       <%}); 

     }) 
     .Render(); 
%> 

的問題是Add().Content方法的簽名是Content(string foo),顯然我打電話RenderPartial的方式,它只是不工作 - 我得到這個異常:編譯錯誤消息:CS1660:無法將lambda表達式轉換爲鍵入'string',因爲它不是委託類型

如何解決此問題,以便仍可以調用此部分方法?我環顧四周,發現了一個RenderPartialToString方法,但這聽起來像是一個黑客攻擊,似乎這有一個比這更好的解決方案。

回答

4

更改爲

<% Html.Telerik().TabStrip() 
     .Name("BusinessDetailsTabs") 
     .Items(parent => 
     { 
      parent.Add() 
       .Text("Facilities") 
       .Content(() => 
       { 
        Html.RenderPartial("~/Views/Shared/DisplayTemplates/BusinessRelations/FacilityGrid.ascx", new FacilitiesViewModel {Entities = Model.Facilities}); 
       }); 

     }) 
     .Render(); 
%> 
+0

真棒,就是它!萬分感謝! (顯然是不會讓我接受你的答案再過9分鐘...... grr ......) – Jaxidian 2010-05-10 20:20:43

+0

任何想法是什麼樣的Visual Basic版本? – 2012-06-26 15:18:41