【问题标题】:Error in RenderPartial in loop asp.net mvc循环asp.net mvc中的RenderPartial错误
【发布时间】:2011-05-01 05:03:05
【问题描述】:

我正在尝试使用这样的循环来呈现多个视图

@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: The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

我将 IMenuRenderer 类型的对象集合传递给我的视图。

知道我的代码有什么问题。有人可以在这里帮忙。

问候

帕米德

【问题讨论】:

  • 你能发布你的 IRenderer/IMenuRenderer 的实现吗?

标签: asp.net razor


【解决方案1】:

@ 字符过多。

您只能使用@s 输入foreach
由于RenderPartial 返回void,因此您无法使用@ 打印其结果。
参数也永远不会得到@s。

将代码更改为

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

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

【讨论】:

    【解决方案2】:

    您可以创建自定义助手。我认为这会对您有所帮助。 ASP.NET MVC: Custom Html Helpers in Razor

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多