DisplayFor()
viene utilizzato per il rendering del modello che corrisponde al tipo di proprietà.
modelli di visualizzazione sono file .cshtml all'interno /DisplayTemplates cartella che a sua volta si trova all'interno di una cartella vista (vale a dire qualsiasi cartella da casa, Condiviso o anche un controller specifico).
Un esempio.
Se hai un String.cshtml modello come questo all'interno /Vista/comune:
@model String
@if (string.IsNullOrEmpty(Model)) {
<span>(no string)</span>
}
else {
<span>@Model</span>
}
Ogni volta che si chiama DisplayFor()
per una proprietà stringa:
DisplayFor(model => model.MyStringProperty);
E ' rende il modello di conseguenza al valore della stringa. Puoi essere più specifico e inserire /DisplayTemplates all'interno di una specifica cartella di visualizzazione e solo le chiamate da tali viste sono influenzate dal modello.
Nel tuo caso si può essere ancora più specifico e chiamare DisplayFor()
con un modello particolare.
Supponiamo di avere un modello per una particolare proprietà, denominato MyPropertyTemplate.cshtml. Si potrebbe chiamare DisplayFor()
come questo:
DisplayFor(model => model.MyProperty, "MyPropertyTemplate");
E loro, all'interno di tale modello si può avere tutto quello HTML attributi desiderati.
@model MyProperty
<span class="orangetxt strongtxt">@MyProperty.ToString()</span>
PS: Quando non trova un modello Credo che solo chiamate model.Property.ToString()
senza ulteriore html.
FYI: EditorFor()
, ad esempio, funziona in modo simile ma utilizza la cartella /EditorTemplates.
Hmm potrei sbagliarmi qui, ma il tuo uso previsto come basato sulla domanda, a me sembra non funzionerà .. puoi forse includere come stai usando l'aiutante – Ahmad