代码之家  ›  专栏  ›  技术社区  ›  Joshua Walsh

此词典需要“Umbraco.Web.Models.PartialViewMacroModel”类型的模型项

  •  1
  • Joshua Walsh  · 技术社区  · 11 年前

    我有以下部分视图:(/Views/Partials/Banner.cshtml)

    @inherits Umbraco.Web.Mvc.UmbracoViewPage<MyProject.Models.Banner>
    
    <div class="test">@Model.Title</div>
    

    以及此模型:(/Models/Banner.cs)

    namespace MyProject.Models
    {
        public class Banner
        {
            public string Title;
    
            public Banner(string title = "")
            {
                Title = title;
            }
        }
    }
    

    我尝试使用以下代码将我的部分视图包含在一个布局中:

    @Html.Partial("Banner", new MyProject.Models.Banner("TestBanner"))
    

    我得到以下错误:

    传递到字典中的模型项的类型为 “MyProject.Models.Banner”,但此词典需要模型项 类型为“Umbraco.Web.Models.PartialViewMacroModel”。

    我也尝试过使用 @model MyProject.Models.Banner 而不是 @inherits Umbraco.Web.Mvc.UmbracoViewPage<MyProject.Models.Banner> 在我的部分视图中,结果完全相同。

    我相信Umbraco.RenderMacro()用于渲染MacroPartials(我相信PartialViewMacroModel与此相关),而标准Html.Partial()将允许我使用自己选择的模型渲染局部视图。有人能告诉我我做错了什么吗?

    谢谢

    YM公司

    1 回复  |  直到 11 年前
        1
  •  0
  •   Joshua Walsh    11 年前

    问题是我团队的另一名成员在/Views/MacroPartials中创建了Banner.cshtml文件,并且加载的是这个部分视图而不是我的部分视图。