Je suis en train de créer une autre vue pour un type personnalisé qui affichera une table de champs. La plupart des champs peuvent être affichés en utilisant quelque chose comme ceci:Incorporation d'un champ dans une autre vue
@Display(Model.ContentItem.CustomType.CustomField.Value)
Cependant, quelques-uns des champs que je préférerais avoir la vue complète du champ. Par exemple, un champ d'adresse IP qui affiche le résultat du ping de l'adresse à côté de la valeur du champ lui-même.
Je trouve que cette forme peut être affiché à l'aide:
@Display.Fields_CustomField(Model.ContentItem.CustomType.Address)
mais alors que les résultats d'appel dans les valeurs du modèle étant différent lorsqu'il est affiché par le conducteur, comme le besoin d'appeler Model.ContentField.Value au lieu de Model.Value.
var model = Model.ContentField ?? Model;
var settings = Model.Settings ?? Model.PartFieldDefinition.Settings;
et même des contrôles plus complexes:
bool customFieldSetting = settings.GetType() == typeof(CustomFieldSettings) ?
settings.CustomSetting :
bool.Parse(settings["CustomFieldSettings.CustomSetting"]);
Mon champ personnalisé peut être réécrite pour vérifier plusieurs emplacements pour ces valeurs, mais c'est une solution peu pratique lorsqu'il faut modifier de nombreux domaines avec cette logique.
Existe-t-il un moyen de rendre l'affichage complet d'un champ à partir d'une forme alternative?
Je ne savais pas que vous pourriez définir le placement spécifiquement. Comment est défini quelque chose comme Column1? – ub3rman123
Il n'y a pas de définition réelle, il vous suffit d'afficher la forme Column1 – Hazza
Cela pourrait aider http://arkleseizure.net/what-the-hell-is-an-item-template – Hazza