Frage

Ich frage mich nur, wie und wann Leute Editor/Display -Vorlagen im Vergleich zu HTML -Helfern verwenden. Insbesondere spreche ich über die Verwendung von unterschiedlicher Benutzeroberflächenkontrolle, anstatt Entitäten zu machen.

Zum Beispiel habe ich so etwas wie den folgenden Geldautomaten:

<tr>
    <th><%= Html.LabelFor(x => x.ActivityTypeId) %></th>
    <td><%= Html.EditorFor(x => x.ActivityTypeList, "MultiSelectDropDownList")%></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Name) %></th>
    <td><%= Html.EditorFor(x => x.Name) %></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Description) %></th>
    <td><%= Html.DisplayFor(x => x.Description, "DisplayString")%></td>
</tr>   

Aber in letzter Zeit frage ich mich, ob ich das tun sollte:

<tr>
    <th><%= Html.LabelFor(x => x.ActivityTypeId) %></th>
    <td><%= Html.MultiSelectDropDownList(x => x.ActivityTypeList)%></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Name) %></th>
    <td><%= Html.EditorFor(x => x.Name) %></td>
</tr>
<tr>
    <th><%= Html.LabelFor(x => x.Description) %></th>
    <td><%= Html.DisplayString(x => x.Description)%></td>
</tr>   

Aber wenn ich mich mit dieser zweiten Option um den mittleren Editor für ... verwendete, würde ich nur eine HTML.Textbox verwenden und den Vorteil haben, jede HTML -Eigenschaft festzulegen, die ich mag.

Ich interessiere mich, welche Muster die Leute hier verwenden ... irgendwelche Ideen?

Prost Anthony

War es hilfreich?

Lösung

Editorfor und Display For sind die leistungsstärksten Aspekte von MVC 2 und sollten meiner Meinung nach so weit wie möglich verwendet und missbraucht werden.

Steigen Sie zu Brad Wilsons Blog und sehen Sie sich an, wie Sie die Objektvorlagen erweitern können, um konventionelle Bildschirme von ViewModels, die mit Attributen verziert sind, schnell herauszupeitschen:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-templates-part-5-master-page-templates.html

Ich verwende diese Technik in einem aktuellen Projekt und bisher wurde nicht sogar eine HTML -Zeile für einen einzelnen Bildschirm geschrieben. :D

Andere Tipps

Ich mag so sehr den zweiten.

Es ist elegant und befreit dich von diesen schrägigen Saiten :)

Ich habe den T4 geändert (tatsächlich im Prozess der Änderung) Edit, Create, und View Vorlagen, um den gewünschten Code auszuspucken. Dieser Code verwendet keine DisplayFor oder EditorFor Methoden. Ich habe mich nicht in den Code für diese Methoden ausgegraben, aber ich bin mir ziemlich sicher, dass Sie dort einige Reflexion sehen werden. Meine modifizierten Vorlagen erzeugen derzeit TextBoxFor, DropDownListFor, und CheckBoxFor.

Sie können die Methode in der Brad Wilson -Post verwenden, die JFAR erwähnt hat, wenn Sie es vorziehen. Zumindest hätte ich die Vorlagen mit dem Code für jedes Feld ausspucken lassen DisplayFor oder EditorFor Sie können sich also später wieder in einen bestimmten Editor ändern und alle erforderlichen Attribute für das Eingabefeld hinzufügen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top