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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top