In che modo le persone utilizzano i modelli Editor/Visualizzazione vs.Helper HTML?
-
18-09-2019 - |
Domanda
Mi stavo solo chiedendo come e quando le persone utilizzano i modelli Editor/Visualizzazione rispetto ai modelli Editor/Visualizzazione.Helper HTML.Nello specifico sto parlando del suo utilizzo nel rendering di diversi controlli dell'interfaccia utente piuttosto che nel rendering di entità.
Ad esempio, ho qualcosa di simile al seguente bancomat:
<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>
Ma ultimamente mi chiedo se dovrei fare questo:
<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>
Ma se scelgo questa seconda opzione, ha molto senso usare l'editor centrale per...Sarei semplicemente un benestante utilizzando Html.Textbox e avrei il vantaggio di poter impostare qualsiasi proprietà HTML che mi piace.
Mi interessa quali modelli usano le persone qui...Qualche idea?
Saluti Anthony
Soluzione
EditorFor e DisplayFor sono gli aspetti più potenti di MVC 2 e secondo me dovrebbero essere usati e abusati il più possibile.
Passa al blog di Brad Wilson e scopri come estendere i modelli di oggetti per estrarre rapidamente schermate basate su convenzioni da ViewModels decorate con attributi:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html
Sto utilizzando questa tecnica in un progetto attuale e finora non è stata scritta nemmeno una riga di HTML per una singola schermata.:D
Altri suggerimenti
Mi piace così tanto il secondo.
È elegante e ti libera da quelle corde buggine :)
Ho modificato (anzi, in fase di modifica) il T4 Edit
, Create
, E View
modelli per sputare il codice che desidero.Quel codice non ne usa nessuno DisplayFor
O EditorFor
metodi.Non ho approfondito il codice di questi metodi, ma sono abbastanza certo che vedrai alcune riflessioni in corso lì dentro.I miei modelli modificati attualmente vengono generati TextBoxFor
, DropDownListFor
, E CheckBoxFor
.
Se preferisci, potresti utilizzare il metodo nel post di Brad Wilson menzionato da Jfar.Come minimo farei in modo che i modelli spuntino il codice per ciascun campo utilizzando DisplayFor
O EditorFor
quindi puoi tornare indietro più tardi, puoi passare a un editor specifico e aggiungere tutti gli attributi necessari per il campo di input.