2009-08-26 3 views
5

여러 가지 이유로 asp.net mvc보기에 대한 강력한 형식화 된보기 데이터를 선호하며 코드 숨김이 이전 asp.net MVC 미리보기에 있었기 때문에 실제로 codebehinds가있는보기를 선호했습니다. 일반적으로 실제보기와 1 : 1 관계를 갖는 poco viewdata 클래스를 정의하는 자연스러운 장소입니다.asp.net mvc보기 및 강력하게 형식화 된 viewdata

코드 비헤이비어를 asp.net rtm보기에 표시 할 수있는 방법이 있습니까? 아니면 좋은 방법이 아닌가요?

편집 : 코드 숨김을 갖고 싶은 유일한 이유는 ViewData가보기의 속성으로 표시된다는 것입니다. 뷰가 클래스 인 경우 ViewData는 해당 속성 중 하나 였고 별도의 어셈블리에서이를 정의하는 것이 자연스럽지 않다고 느꼈습니다.

답변

6

MVC와 함께 거의 1 년이 지난 후에도 코드 비하인드 뷰가 필요 없다는 것을 확인할 수 있습니다. 코드 숨김을 사용한다면 여전히 WebForms을 생각하고있을 것입니다. 그거 떨어 뜨려.

보기 만 모델 데이터를 표시해야합니다. CSS 클래스를 적용하는 것과 같은 간단한 결정을 서버 태그 내에서 직접 수행 할 수 있습니다. 보다 복잡한 결정은 컨트롤러 또는 비즈니스 로직으로 가야합니다.

+0

그러나 강력하게 형식화 된 뷰 데이터를 사용하고 그 클래스를 정의하는 경우에 사용할 수 있습니까? – terjetyl

+0

이러한 클래스는 자체 어셈블리 인 MyProject.Models에 있어야하며 큰 프로젝트의 경우 MyProject.ViewModels (또는 .DTO)에 있어야합니다. – Jason

+0

@TT : 그렇습니다. 강력한 형식의보기를 사용합니다. 모델을 "모델"폴더에 보관합니다.모델은 기본적으로 뷰를 표시 할 준비된 데이터를 보유하는 별도의 얇은 레이어를 나타냅니다. –

0

Views에 대한 코드 숨김은 MVC 프레임 워크의 목적 중 하나와 상충합니다.

보기는 가능한 단순해야하며 컨트롤러 또는 확장 기능이 모든 비즈니스 논리를 처리하는 동안 프레젠테이션에만 집중해야합니다.

ViewState를 결합한 사용자는 코드 숨김의 필요성을 제거해야합니다.

0

Web Forms과 마찬가지로 MVC 아키텍처의 코드가 필요하지 않습니다.

전체 MVC 아키텍처는 마법을 제어하는 ​​webcontrol 이벤트가 아니라 컨트롤러를 기반으로합니다.

개인적으로 나는 MVC의 어두운면에 빠지기 시작했지만 지금은 여기에있는 것을 좋아합니다.

데이터를 강력하게 입력하여 데이터를 입력하고 모델에서 쉽게 검증 할 수있는 동작의 "돌아 가기보기 (항목)"-보기에 콘텐츠를 쉽게 넣을 수 있습니다. (입력 오류가보기에 표시되기 때문에 큰 인)

1

난 강력하게 다양한 이유

이 여전히 당연히 수행 할 수 있습니다

에 대한 내 asp.net MVC 전망을 ViewData를 입력 선호합니다. NerdDinner FormviewModels page 6 나는 그것을 사용하고 완벽하게 작동합니다. 내 두 질문에서 찾을 수있는 몇 가지 문제가있었습니다 herehere .

위에서 말했듯이 왜 코드 숨김을 사용하려고하는지 알 수 없습니다. 원하는 경우 MVC 구조 및 뷰에 대한 일반 정보를 읽는 것이 좋습니다.