사람들은 편집기/디스플레이 템플릿 대 HTML 도우미를 어떻게 사용하고 있습니까?
-
18-09-2019 - |
문제
사람들이 편집기/디스플레이 템플릿 대 HTML 도우미를 어떻게 사용하는지 궁금합니다. 구체적으로 저는 엔티티를 렌더링하기보다는 다른 UI 제어를 렌더링하는 데 사용하는 것에 대해 이야기하고 있습니다.
예를 들어, 나는 다음 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>
그러나 늦게 나는 이것을 해야하는지 궁금합니다.
<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 속성을 설정할 수 있다는 이점이 있습니다.
사람들이 여기에 사용하는 패턴에 관심이 있습니다 ... 어떤 아이디어?
Anthony를 건배합니다
해결책
EditorFor 및 DisplayFor는 MVC 2의 가장 강력한 측면이며 최대한 많이 사용하고 남용해야합니다.
Brad Wilsons 블로그로 이동하여 객체 템플릿을 확장하여 속성으로 장식 된 ViewModels에서 컨벤션 기반 화면을 빠르게 채찍질하는 방법을 확인하십시오.http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-5-master-page-templates.html
현재 프로젝트 에서이 기술을 사용하고 있으며 지금까지 HTML의 한 줄은 개별 화면을 위해 작성되지 않았습니다. :디
다른 팁
나는 두 번째를 너무 좋아합니다.
그것은 우아하고 그 버그 끈으로부터 당신을 해방시킵니다 :)
T4를 수정했습니다 (실제로 수정 과정) Edit
, Create
, 그리고 View
내가 원하는 코드를 뱉어내는 템플릿. 해당 코드는 사용하지 않습니다 DisplayFor
또는 EditorFor
행동 양식. 나는이 방법들을 위해 코드를 파헤쳐지지 않았지만 거기에 약간의 반사가 진행되는 것을 볼 수 있다고 확신합니다. 수정 된 템플릿이 현재 생성됩니다 TextBoxFor
, DropDownListFor
, 그리고 CheckBoxFor
.
원하는 경우 JFAR가 언급 한 Brad Wilson 게시물의 메소드를 사용할 수 있습니다. 최소한 템플릿이 각 필드에 대한 코드를 뱉어 내게합니다. DisplayFor
또는 EditorFor
따라서 나중에 돌아갈 수 있습니다. 특정 편집기로 변경하면 입력 필드에 필요한 속성을 추가 할 수 있습니다.