我在我的一个自定义内容类型中使用分类法部分,并使用形状跟踪器,我能够为该控件创建自定义视图模板(Fields.Contrib.TaxonomyField.cshtml)。
当我在页面上跟踪元素时,在模板下它确实显示我的自定义模板,就像我在外部文件上一样:
@using Orchard.Utility.Extensions;
@using Orchard.ContentManagement;
@{
var terms = (IEnumerable<Contrib.Taxonomies.Models.TermPart>)Model.Terms;
string name = @Model.ContentField.Name;
}
@if (Model.Terms.Count > 0) {
@(new HtmlString( string.Join(", ", terms.Select(t => Html.ItemDisplayLink(Html.Encode(t.Name), t.ContentItem ).ToString()).ToArray()) ))
}
<div>TEST TEXT</div>
但是,当我选中实际输出的HTML时,它显示标准的内置模板,并且没有使用我的自定义。
<p class="taxonomy-field">
<a href="/categories/coffee-shop">Coffee Shop</a>
</p>
根据形状跟踪器,它使用我的自定义模板:
Shape Fields_Contrib_TaxonomyField
活动模板 〜/主题/连续/查看/ Fields.Contrib.TaxonomyField.cshtml
显示类型明细
这感觉就像一个错误...所有东西看起来都正确连接......我需要做些什么来使用我的自定义视图模板进行分类?
非常感谢!
答案 0 :(得分:1)
我弄明白了这个问题。事实证明,还有另一个模板(可能是偶然的)是特定于URL的:
Fields.Contrib.TaxonomyField-URL-venues.cshtml
这是我所使用的网址,而且还有默认模板。删除后,它最终使用了我的自定义模板。
用户错误,对不起!!