Как люди используют редакторы / шаблоны отображения по сравнению с HTML-помощниками? - PullRequest
7 голосов
/ 05 февраля 2010

Просто интересно, как и когда люди используют редакторы / шаблоны отображения против Html Helpers. В частности, я говорю о его использовании для визуализации различных элементов управления пользовательского интерфейса, а не для рендеринга объектов.

Например, у меня есть что-то вроде следующего банкомата:

<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>   

Но в последнее время мне интересно, стоит ли мне это делать:

<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>   

Но если я выберу этот второй вариант, есть ли смысл использовать средний редактор для ... Я бы хорошо использовал Html.Textbox и имел возможность установить любое свойство html, которое мне нравится.

Мне интересно, какие шаблоны люди используют здесь ... Есть идеи?

Приветствие Энтони

Ответы [ 3 ]

5 голосов
/ 05 февраля 2010

EditorFor и DisplayFor являются наиболее мощными аспектами MVC 2 и, по моему мнению, должны использоваться и злоупотреблять в максимально возможной степени.

Перейдите в блог Брэда Уилсона и узнайте, как можно расширить шаблоны объектов, чтобы быстро извлекать экраны, основанные на соглашениях, из моделей представления, украшенных атрибутами: http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html

Я использую эту технику в текущем проекте, и до сих пор не было написано ни одной строки HTML для отдельного экрана. : D

0 голосов
/ 11 февраля 2010

Я изменил (на самом деле, в процессе изменения) шаблоны T4 Edit, Create и View, чтобы выложить желаемый код. Этот код не использует методы DisplayFor или EditorFor. Я не копался в коде для этих методов, но я вполне уверен, что вы увидите, что там происходит какое-то отражение. Мои измененные шаблоны в настоящее время генерируют TextBoxFor, DropDownListFor и CheckBoxFor.

Вы можете использовать метод в посте Брэда Уилсона, который упоминал jfar, если хотите. Как минимум, я хотел бы, чтобы шаблоны выплевывали код для каждого поля, используя DisplayFor или EditorFor, чтобы вы могли вернуться позже, можете перейти к конкретному редактору и добавить любые необходимые атрибуты для поля ввода.

0 голосов
/ 05 февраля 2010

Мне так нравится второй.

это элегантно и освобождает вас от этих жуков

...