사람들은 편집기/디스플레이 템플릿 대 HTML 도우미를 어떻게 사용하고 있습니까?

StackOverflow https://stackoverflow.com/questions/2203706

  •  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 따라서 나중에 돌아갈 수 있습니다. 특정 편집기로 변경하면 입력 필드에 필요한 속성을 추가 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top