我正在运行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>
}
答案 0 :(得分:1)
从kb.cshtml中删除前两行:
@inherits Umbraco.Web.Mvc.UmbracoViewPage<dynamic>
@inherits umbraco.MacroEngines.DynamicNodeContext
并将其替换为:
@inherits UmbracoTemplatePage
这与实现从父视图继承其模型的标准MVC部分没有什么不同。
our.umbraco.org上有很多文档,我认真地建议你仔细阅读,因为这将大大有助于这样的事情。