的RenderPartial不能转换为字符串

问题描述:

我与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方法,但这听起来像是一个黑客攻击,似乎这有一个比这更好的解决方案。

更改为

<% 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