2011-05-01 67 views
1

我試圖渲染使用循環這樣錯誤的RenderPartial環路asp.net的MVC

@model IEnumerable<RamtaJogi.Web.Razor.Controllers.IMenuRenderer> 

@foreach (var item in @Model) 
{ 
    {@Html.RenderPartial(@item.ViewName, @item.ViewData);} 
    <br /> 
}  

多個視圖是我IRenderer

public interface IMenuRenderer  
{ 
    string ViewName { get; } 
    object ViewData { get; } 
} 

但它拋出一個錯誤CS1502:該'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)'的最佳重載方法匹配有一些無效參數

我將IMenuRenderer類型的對象集合傳遞給我的視圖。

任何想法我的代碼有什麼問題。有人可以幫助這裏。

問候

成員Parminder

+0

您可以發佈您IRenderer/IMenuRenderer的實施? – 2011-05-01 05:38:53

回答

2

您有太多@個字符。

您應該只使用@ s輸入foreach
由於RenderPartial返回void,因此無法使用@打印結果。
參數也永遠不會得到@ s。

更改您的代碼

@model IEnumerable<RamtaJogi.Web.Razor.Controllers.IMenuRenderer> 

@foreach (var item in Model) 
{ 
    @Html.Partial(item.ViewName, item.ViewData) 
    <br /> 
}