Como as pessoas estão usando o Editor/Modelos de apresentação vs.Html Helpers?
-
18-09-2019 - |
Pergunta
Basta saber como e quando as pessoas estão usando o Editor/Modelos de apresentação vs.Html Helpers.Especificamente eu estou falando sobre a sua utilização na prestação de INTERFACE de usuário diferente de controle, em vez de renderização de entidades.
Por exemplo, eu tenho algo como o seguinte atm:
<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>
Mas de tarde eu estou querendo saber se eu deveria estar fazendo isso:
<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>
Mas, se eu for, com esta segunda opção há muito a ponto de usar o meio editor para...Eu seria apenas um bem, o uso de Html.Texto e têm a vantagem de ser capaz de definir qualquer propriedade html que eu gosto.
Eu estou interessado que padrões pessoas estão usando aqui...Qualquer idéias?
Cheers Anthony
Solução
EditorFor e DisplayFor são os aspectos mais poderosos do MVC 2 e na minha opinião deve ser usado e abusado, tanto quanto possível.
Pulo para o Brad Wilsons blog e confira como você pode estender os modelos de Objeto para rapidamente sacar convenção com base telas de ViewModels decorados com atributos:http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html
Eu estou usando essa técnica em um projeto atual e até agora nem uma linha de HTML tem mesmo sido escrita por um indivíduo tela.:D
Outras dicas
Eu gosto muito do segundo.
É elegante e libera você daquelas cordas buggos :)
Eu modifiquei (na verdade, no processo de modificação) o T4 Edit
, Create
, e View
modelos para cuspir o código que eu quero. Esse código não usa nenhum DisplayFor
ou EditorFor
métodos. Eu não cavei o código para esses métodos, mas tenho certeza de que você verá alguma reflexão acontecendo lá. Meus modelos modificados atualmente geram TextBoxFor
, DropDownListFor
, e CheckBoxFor
.
Você pode usar o método no post de Brad Wilson que o JFAR mencionou se preferir. No mínimo, eu teria os modelos cuspindo código para cada campo usando DisplayFor
ou EditorFor
Assim, você pode voltar mais tarde pode mudar para um editor específico, além de adicionar os atributos necessários para o campo de entrada.