Orchard - 如何在分类法字段中显示自定义术语字段?

时间:2011-07-03 16:27:01

标签: orchardcms

我有一个具有分类字段(功能)的contentType(产品)。分类术语(产品特征术语)已定制为包括图像字段和描述字段。

我希望产品详细信息视图显示术语中的图像以及名称,但我找不到要访问它的属性。

我创建了以下内容:

分类

  1. ProductFeature Taxonomony
    • 词汇:Feat1,Feat2,Feat3
  2. CONTENTTYPES

    1. 产品

      • 字段:功能(分类)
    2. 产品功能术语

      • 字段:描述(Html),图像(图像)
    3. 浏览

      Fields.Contrib.TaxonomyField-Features.cshtml

      <!-- Old Code -->
      @if (Model.Terms.Count > 0) {
      <p class="taxonomy-field">
          <span class="name">@name.CamelFriendly():</span> 
          @(new HtmlString( string.Join(", ", terms.Select(t => Html.ItemDisplayLink(Html.Encode(t.Name), t.ContentItem ).ToString()).ToArray()) ))
      </p>
      }
      
      <!-- New Code -->
      @if (Model.Terms.Count > 0)
      {
          <div>
              @foreach (var myTerm in Model.Terms)
              {   
                  @Display(???)
              }
          </div>
      }
      

      用什么代替问号?我以为它是myTerm.Image,但动态对象上不存在该字段。

      我附上了设计师观众的图像。

      enter image description here

2 个答案:

答案 0 :(得分:4)

如果您想使用模块上的当前开发分支,您可以访问内容项的条款部分,这会引导您查看所有当前应用的条款。

如果您使用的是模块的0.9版,那么您可以通过获取对内容项的引用来动态访问这些字段,然后执行contentItem.PARTNAME.FIELDNAME。对于名为Product的类型和字段名称Feature,它将是contentItem.Product.Feature。然后,如果这个术语有一个名为Image的属性,那么它将是termContentItem.ProductTerm.Image。

我需要更多信息来为您提供确切的语法,例如字段类型,内容类型的确切名称。或者您可以在模块的codeplex项目讨论论坛上发布问题。

答案 1 :(得分:1)

塞巴斯蒂安帮我解决了http://orchardtaxonomies.codeplex.com/discussions/263844

以下是最终工作的内容。

(关键位: contentField = myTerm.ContentItem.Features.TermImage;

@foreach (var myTerm in Model.Terms)
{
    var contentField = myTerm.ContentItem.Features.TermImage;
    if (!String.IsNullOrWhiteSpace(contentField.FileName)) {
        <p class="image-field">
           <img src="@Url.Content(contentField.FileName)" alt="@contentField.AlternateText" width="@contentField.Width" height="@contentField.Height"/>
        </p>
    }
}