1

我在我的一种自定义内容类型中使用了分类部分,并且使用形状跟踪器,我能够为该控件创建自定义视图模板 (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>

根据形状跟踪器,它正在使用我的自定义模板:

形状字段_Contrib_TaxonomyField

活动模板 ~/Themes/Continuum/Views/Fields.Contrib.TaxonomyField.cshtml

显示类型详细信息

这感觉像是一个错误......一切看起来都连接正确......我还需要做些什么来使用我的自定义视图模板进行分类吗?

非常感谢!

4

1 回答 1

1

我解决了这个问题。原来创建了另一个模板(可能是偶然的),它是特定于 url 的:

Fields.Contrib.TaxonomyField-url-venues.cshtml

那是我所在的网址,其中还有默认模板。删除后,它终于使用了我的自定义模板。

用户错误,抱歉!!

于 2011-08-25T04:06:00.163 回答