2016-11-30 4 views
0

내 ContentPicker를 사용하여 선택한 Content를 가져 오려고하지만 코드를 디버깅 할 때. 그것은 단지 내 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> 

주 : 유일한 이유 어 내가 문자열을 가지고, 디버깅하는 것입니다.

+0

안녕하세요, 나는 [제안 된] (http://stackoverflow.com/review/suggested-edits/14500449)과 같은 최악의 경우라도 거의 모든 제안 된 수정 사항을 승인 한 것으로 나타났습니다. 그것은 코드가 아니고, 새로운 철자 오류를 가져오고, 기존 철자 오류를 수정하지 못하는 것에 대한'코드 형식화 '를 도입합니다. 앞으로 검토 할 때 조심하십시오. – Glorfindel

답변

1

ContentPicker는 기본적으로 선택한 콘텐츠 노드의 ID를 반환합니다. 문자열을 먼저 가져 와서 값이 있는지 확인하십시오. 그렇지 않은 경우 콘텐츠 또는 전체 웹 사이트를 다시 게시하여 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 모델이며, 선택한 문서에서 즉시 사용할 수 있습니다.