【问题标题】:Umbraco: Must derive from WebViewPage, or WebViewPage<TModel>.Umbraco:必须从 WebViewPage 或 WebViewPage<TModel> 派生。
【发布时间】:2013-07-29 23:39:15
【问题描述】:

我正在运行 Umbraco 6.0.7 并尝试使部分视图在模板中工作,但出现错误

“~/Views/Partials/kb.cshtml”处的视图必须来自 WebViewPage 或 WebViewPage。

我不确定如何解决这个问题 - 非常感谢任何帮助。

模板:

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@{
Layout = "Site.cshtml";    
}
<div>
 @Html.Partial("kb")
</div>

局部视图 (kb.cshtml):

@inherits Umbraco.Web.Mvc.UmbracoViewPage<dynamic>
@inherits umbraco.MacroEngines.DynamicNodeContext

@{
    var parent = Model.AncestorOrSelf(2);
    if (parent != null) { 
        traverse(parent,2,3);
    }
}

@helper traverse(dynamic parent,int startLevel,int finishLevel) {

    <ul>

        foreach (var item in parent.Children.Where("umbracoNaviHide!=true")) {

            var selected = (Array.IndexOf(Model.Path.Split(','), item.Id.ToString()) >= 0 ? " class=\"selected\"" : "");

            <li >
                <a href="item.Url">item.Name</a>
                if (selected !="" && item.Level <= 3)  { 
                    traverse(item,2,3)
                }

            </li>
        }

    </ul>
}

【问题讨论】:

  • 你找到答案了吗?

标签: razor umbraco partial umbraco6


【解决方案1】:

从 kb.cshtml 中删除前两行:

@inherits Umbraco.Web.Mvc.UmbracoViewPage<dynamic>
@inherits umbraco.MacroEngines.DynamicNodeContext

并将它们替换为:

@inherits UmbracoTemplatePage

这与实现从父视图继承其模型的标准 MVC 部分没有什么不同。

our.umbraco.org 有很多文档,我强烈建议您通读一遍,因为这将极大地帮助解决此类问题。

【讨论】:

  • 谢谢 :) 我浏览了 our.umbraco.org - 但找不到此信息。
猜你喜欢
  • 2011-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2013-06-05
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
相关资源
最近更新 更多