DisplayFor()
służy do renderowania szablonu zgodnego z typem właściwości.
Szablony wyświetlania to pliki .cshtml wewnątrz folderu /DisplayTemplates, który z kolei znajduje się w folderze widoku (tj. Dowolnym folderze z Home, Shared lub nawet określonego kontrolera).
Przykład.
Jeśli ve String.cshtml szablon tak wewnątrz /Views/Shared:
@model String
@if (string.IsNullOrEmpty(Model)) {
<span>(no string)</span>
}
else {
<span>@Model</span>
}
każdym razem dzwonić DisplayFor()
na właściwości String:
DisplayFor(model => model.MyStringProperty);
To renderuje szablon odpowiednio do wartości ciągu. Możesz być bardziej konkretny i umieścić /DisplayTemplates wewnątrz określonego folderu Widok, a szablon wywoła tylko te wywołania z tych widoków.
W twoim przypadku może być nawet bardziej szczegółowe i nazywają DisplayFor()
z konkretnego szablonu.
Załóżmy, że masz szablon dla określonej właściwości o nazwie MyPropertyTemplate.cshtml. nazwałbyś DisplayFor()
tak:
DisplayFor(model => model.MyProperty, "MyPropertyTemplate");
a nimi, wewnątrz tego szablonu można mieć cokolwiek chcesz atrybutów HTML.
@model MyProperty
<span class="orangetxt strongtxt">@MyProperty.ToString()</span>
PS: Jeśli nie znajdzie szablon Chyba tylko nazywa model.Property.ToString()
bez dodatkowego html.
FYI: EditorFor()
, na przykład, działa w podobny sposób, ale używa folderu /EditorTemplates.
Hmm i może się mylę tutaj, ale twoje zamierzone użycie jako oparte na pytaniu, wydaje mi się nie działa. czy możesz uwzględnić sposób, w jaki używasz pomocnika? – Ahmad