Просто задавшись вопросом, как и когда люди используют редактора/еисплей Templates по сравнению с Помощниками HTML. Конкретно я говорю о его использовании в рендеринге другого управления UI вместо того, чтобы представить объекты.
Например, у меня есть что-то как следующий банкомат:
<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. Текстовое поле и обладает преимуществом способности установить любое свойство HTML, которое я люблю.
Мне интересно, что люди шаблонов используют здесь... Какие-либо идеи?
Аплодисменты Anthony
EditorFor и DisplayFor - наиболее мощные аспекты MVC 2, и, на мой взгляд, ими следует как можно чаще злоупотреблять.
Зайдите в блог Брэда Уилсона и узнайте, как можно расширить шаблоны объектов для быстрого извлечения экранов на основе соглашений из моделей представления, украшенных атрибутами: http://bradwilson.typepad.com/ blog / 2009/10 / aspnet-mvc-2-templates-part-5-master-page-templates.html
Я использую эту технику в текущем проекте, и до сих пор не было написано ни одной строки HTML для индивидуального экрана. : D
Мне очень нравится второй.
это элегантно и освобождает вас от этих ошибочных строк :)
Я изменил (фактически, в процессе изменения) T4 Edit
, Create
и Просмотрите
шаблоны, чтобы выдать нужный мне код. В этом коде не используются методы DisplayFor
или EditorFor
. Я не копался в коде этих методов, но уверен, что вы увидите там какое-то отражение. Мои измененные шаблоны в настоящее время создают TextBoxFor
, DropDownListFor
и CheckBoxFor
.
Вы можете использовать метод из сообщения Брэда Уилсона, упомянутого jfar, если хотите. Как минимум, я хотел бы, чтобы шаблоны выдавали код для каждого поля, используя DisplayFor
или EditorFor
, чтобы вы могли вернуться позже, можете перейти к конкретному редактору, а также добавить любые необходимые атрибуты для ввода поле.