2013-06-24 4 views
1

모델 번호가 A1, A2 A3 & A4입니다.동적으로 모델 + MVC4에서 뷰를 생성합니다.

가이 모델의 각 뷰 수 (목록과 같은 또는 생성, 편집 등.,.)

을하지만 내 견해는 어떤 정적 HTML을, 나는 몇 가지를 사용하여 HTML을 렌더링 할 필요가 없어야합니다 HTML 도우미 메서드.

아마 나는 또한 내가 텍스트 상자를 렌더링 또는 유형에 따라 드롭 다운 또는 날짜에 모델에서 열 유형을 확인해야

public static MvcHtmlString RenderContent(this HtmlHelper helper, IEnumerable<FatRoute> model) 
    { 
    } 

아래처럼 RenderHelper.cs의 방법을 써야한다.

여기의 문제는 열이 foreach 모델 (분명히)과 다르며 각 모델의 열 유형을 검사하는 코드 블록을 비교할 수 없다는 것입니다. 품목을 말하면. (여기에서 항목의 열을 가져옵니다) foreach bolck에서 전달 된 모델의 열만 가져옵니다. 그러나 모든 모델을 다루는 일반적인 방법이어야합니다.

누군가가 이것을 달성하는 방법을 조언 할 수 있습니까?

답변

2

MVC는 이미이를 수행하는 방법을 제공합니다. 디스플레이/편집기 템플릿이라고합니다. 그들은 이미 리플렉션을 사용하여 모델을 동적으로 렌더링합니다. 그들이 기본적으로하는 방식이 마음에 들지 않는다면, 단순히 자신 만의 사용자 정의 개체 템플릿으로 바꿀 수 있습니다.

당신은 단순히 @Html.EditorForModel 또는 @Html.DisplayForModel를 사용하여 전체 모델을 렌더링 할 수

당신이 여기에 어떻게 작동하는지에 대해 읽을 수 있습니다 : 정보 주셔서

http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html

+0

감사합니다. 나는 기사를 훑어 보았다. mVC 2의 기능 중 하나입니다. 현재 MVC4에 있지만 MVC4에서이 작업을 수행하는 더 좋은 방법은 무엇이며 기본 템플릿을 사용하는 것이 장단점입니까? – mmssaann

+0

@ mmssddff - MVC3과 MVC4는 본질적으로 MVC2의 상위 집합입니다 (몇 가지 변경 사항이 있지만 대용량 집합이 있습니다). 이것은 변경되지 않았습니다. 장단점이 없습니다. 템플릿을 렌더링하는 방식이나 그렇지 않은 방식을 선호합니다. 그렇지 않으면 자신 만의 템플릿을 사용합니다. 기사의 링크에서 기본 템플릿을 다운로드하고 필요에 맞게 수정할 수 있습니다. –

+0

@mmssddff - hmm .. 링크가 더 이상 보이지 않습니다 .. 기본 템플릿은 http://aspnetwebstack.codeplex.com/SourceControl/latest#src/Microsoft에서 찾을 수있는 MVCFutures 소스에 있습니다. .Web.Mvc/FuturesFiles/DefaultTemplates/EditorTemplates/Object.ascx –

0

사용자 지정 도우미를 사용하기로 결정 했으므로 한 가지 방법은 반사을 사용하여 모델의 속성을 반복하고 해당 지식을 사용하여보기를 작성하는 것입니다.

이렇게하면 모델의 속성에 대한 속성 주석 (데이터 주석) (예 : DisplayNameAttribute)을 사용하여 뷰 생성기에 추가 데이터를 제공 할 수 있습니다.

이 방법을 사용하면 모델 자체가 아니라 모델에 정의 된 각 유형의 속성 (열)을 타겟팅하게됩니다.

관련 문제