2009-03-04 5 views
6

저는 컨트롤러 내에서 내 viewdata 클래스를 중첩했습니다. 숫자가 늘어남에 따라 이것이 좋은 생각인지 직접 물어보기 시작했습니다. 다시 한번,/Views와/Controllers 디렉토리를 오염시키는 것에 관한 것들은 이런 것처럼 보입니다.강하게 입력 된 뷰 데이터를 asp.net-mvc에 넣어야합니까?

여기에 누락 된 규약이 있습니까? 아마/ViewData 디렉토리일까요? idk, 내 viewdata 클래스의 좋은 위치는 무엇입니까?

답변

0

나는 정확히 당신이 제안한 것을했는데, 강력하게 형식화 된 뷰 데이터가/ViewData에 있습니다. 내가 \ Model 디렉토리에 넣는 것에 대해 생각했지만 내 프로젝트에 너무 많은 중첩 된 디렉토리가있는 것을 좋아하지 않는다. \ ViewData는 Kigg도 수행합니다.

0

저는보기 데이터 클래스를 전용 프로젝트에 넣었습니다. 그것들은 DTO이고, 그것들을 자신들의 프로젝트에 넣는 것은 그것들이 아키텍쳐 계층에서 위의 어떤 것에도 의존하지 않도록 강제합니다.

뷰로 전달하기 위해 DTO로 사용하면 뷰어를 사용하는 한 가지 방법 일뿐입니다. 나는 언젠가는 유선으로 메시지를 보낼 수도 있고, 서비스 버스에있는 메시지 속에 무엇이든 넣을 수도 있습니다.

3

나는 대회를 모릅니다. 나는 단지 내 밑에 /Model/ViewModel/BlahViewModel.cs 등을 넣었다. 특별히 필요가있을 때까지 나는 그것들을 별도의 프로젝트에 넣지 않을 것이다. 필요한 경우 나중에 이동하는 것이 어렵지 않습니다.

0

당신은 내가 개체의 각 도메인에 대한 추천 코드의 네임 스페이스 구조를 대표해야 MVC 및 폴더 구조를 사용하고 있기 때문에 당신은 별도의 폴더로 그룹화 컨트롤러, 모델 및 서비스를해야

우리가

을 사용
  • 도메인 이름

     Controllers 
        Model 
        Services 
    
+0

를 잘하지만, 어디 viewdata 클래스를 넣으시겠습니까? 제어기와 뷰는 그것들에 의존합니다. –

+0

모델 폴더에서 모델을 컨트롤러의 뷰에 전달할 수 있습니다. MvcContrib에는 ViewData.Add (modelInstance) 및 ViewData.Get과 같은 뷰 데이터에 데이터 모델을 전달할 수있는 몇 가지 훌륭한 확장 기능이 있습니다. () – Richard