2016-11-30 4 views
0

Ich versuche, den ausgewählten Inhalt mit meinem ContentPicker zu bekommen, aber wenn ich den Code debuggen. Es gibt nur eine Null in meinem ContentPicker zurück.ContentPicker Return null

Mein Document 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> 

Hinweis: Der einzige Grund, wh y ich habe string s, ist zu debuggen.

+0

Hallo, ich habe bemerkt, dass Sie fast alle vorgeschlagenen Bearbeitungen genehmigen, sogar abgründige wie [diese] (http://stackoverflow.com/review/suggested-edits/14500449). Es führt "Code-Formatierung" für Dinge ein, die kein Code sind, führt neue Rechtschreibfehler ein und korrigiert bestehende nicht. Bitte seien Sie vorsichtig bei der Überprüfung in der Zukunft. – Glorfindel

Antwort

1

ContentPicker gibt standardmäßig die ID des ausgewählten Inhaltsknotens zurück. Versuchen Sie, die Zeichenfolge zuerst zu erhalten, und prüfen Sie, ob der Wert vorhanden ist. Wenn nicht, veröffentlichen Sie den Inhalt oder die gesamte Website erneut, um den XML-Cache zum Neuaufbau zu zwingen.

Es ist also nicht so offensichtlich, es der ContentPicker-Klasse zuzuordnen, und es erfordert zusätzliche Eigenschaften, meist Fokus auf Eigenschafteneditor, nicht Wert selbst.

Grundlegende Verwendung von ContentPicker ist hier: https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/content-picker. Und darüber habe ich oben am Anfang geschrieben.

Ich kann Ihnen auch vorschlagen zu verwenden (Installation ist auch über NuGet möglich) Umbraco Core Property Value Konverter Paket: https://our.umbraco.org/projects/developer-tools/umbraco-core-property-value-converters. Es ist geplant, dies in den Umbraco Core zu integrieren, und es werden im Grunde Werte gewöhnlicher Datentypen in bequemere und brauchbarere z. Der Wert von ContentPicker ist das IP-Veröffentlichungs-Content-Modell des ausgewählten Dokuments, bereit und einfach in dem Dokument zu verwenden, in dem es ausgewählt wurde.