2016-11-30 11 views
0

私はContentPickerで選択したコンテンツを取得しようとしていますが、コードをデバッグしています。私はContentPickerにnullを返します。ContentPicker戻り値null

私のDocumentType enter image description here

ContactPerson.cs

using System.Linq; 
using umbraco.controls; 
using Umbraco.Core.Models; 
using Umbraco.Site.Extensions.Extensions; 
using Umbraco.Site.Extensions.Models.Media; 
using Umbraco.Web; 

namespace Umbraco.Site.Extensions.Models.DocumentTypes.Grid 
{ 
    public class ContactPerson 
    { 
     public ContentPicker contentPicker { get; set; } 

     public ContactPerson(IPublishedContent content) 
     { 
      contentPicker = content.GetPropertyValue<ContentPicker>("contactPersonPicker"); 
     } 
    } 
} 

ContactPerson.cshtml

@using Umbraco.Site.Extensions.Models.DocumentTypes.Grid 
@inherits UmbracoTemplatePage 
@{ 
    Layout = null; 
    ContactPerson cp = new ContactPerson(Model.Content); 

    string s = "s"; 
} 

<div>test</div> 

注:唯一の理由のWH私は文字列を持っている、デバッグすることです。

+0

こんにちは、私はあなたが[この1]のような深刻なものでさえも、ほぼすべての提案された編集を承認したことに気付きました(http://stackoverflow.com/review/suggested-edits/14500449)。コードではないもののために 'code formatting'を導入し、新しいスペルミスを導入し、既存のものを訂正しません。将来の見直しにはさらに注意してください。 – Glorfindel

答えて

1

ContentPickerは、デフォルトで選択されたコンテンツノードのIDを返します。最初に文字列を取得し、値が存在するかどうかを確認してください。そうでない場合は、コンテンツまたはWebサイト全体を再パブリッシュして、XMLキャッシュの再構築を強制します。

したがって、それをContentPickerクラスにマップすることはそれほど明白ではなく、追加のプロパティは、値そのものではなく、プロパティエディタ上に配置する必要があります。

ContentPickerの基本的な使い方は、https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/content-pickerです。そしてそれについては、私は冒頭で上手く書いていました。

また、(NuGet経由でもインストールが可能です)Umbracoコアプロパティ値コンバータパッケージ:https://our.umbraco.org/projects/developer-tools/umbraco-core-property-value-convertersです。 Umbraco Coreの中にこれを含める予定です。基本的には、共通のデータ型の値をより便利で使いやすいものにマッピングしています。 ContentPickerの値は選択されたドキュメントのIPublishedContentモデルで、選択されたドキュメントですぐに使いやすくなります。