Error in RenderPartial in loop asp.net mvc
I am trying to render multiple Views using a loop like this 开发者_JS百科
@model IEnumerable<RamtaJogi.Web.Razor.Controllers.IMenuRenderer>
@foreach (var item in @Model)
{
{@Html.RenderPartial(@item.ViewName, @item.ViewData);}
<br />
}
here is my IRenderer
public interface IMenuRenderer
{
string ViewName { get; }
object ViewData { get; }
}
But it throws an error CS1502: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments
I pass a collection of objects of type IMenuRenderer to my view.
Any idea what is wrong with my codes. Can someone help here.
Regards
Parminder
You have too many @ characters.
You should only use @s to enter the foreach.
Since RenderPartial returns void, you cannot print its result with an @.
Parameters also never get @s.
Change your code to
@model IEnumerable<RamtaJogi.Web.Razor.Controllers.IMenuRenderer>
@foreach (var item in Model)
{
@Html.Partial(item.ViewName, item.ViewData)
<br />
}
You can create a custom helper.I think this will help you. ASP.NET MVC: Custom Html Helpers in Razor
加载中,请稍侯......
精彩评论