2012-10-15 5 views
0

이것은 일반적인 상황이되어야합니다. 아마도 잘못된 용어로 검색하고있을 수도 있습니다 ...하나 이상의 컨트롤러에서보기로 데이터를 반환하는 방법은 무엇입니까?

저는 EF 코드를 먼저 사용하는 ASP.NET MVC 프로젝트를 가지고 있습니다.

전자 메일 유형에 대해 하나의 개체/테이블/컨트롤러 (예 : 집, 직장, 학교)가 있습니다. 객체는 단순하며 ID와 이름 필드 만 있습니다. 따라서 다양한 이메일 유형을 쉽게 관리 할 수 ​​있습니다.

이메일 용 개체/테이블/컨트롤러가 있습니다. ID, 이름 (예 : [email protected]) 및 EmailType 속성이 있습니다.

새 이메일을 만들려면 이메일 주소를 입력 할 텍스트 상자가 있어야합니다. 전자 메일 유형을 선택하고 전자 메일에 할당 할 수 있도록 드롭 다운을 배치해야합니다. 내가 생각하기에 이것은 꽤 표준적인 것들이다.

내 전자 메일 컨트롤러에서 Create() 함수는 View() 만 반환합니다.

EmailType 드롭 다운을 채우기 위해 데이터를 반환해야합니다.

어떻게하면됩니까?

(참고 : 나는 또한 어쩌면 ViewBag 또는 그런 일로 물건 수, 나는이 데이터를 끌어 JQuery와/AJAX를 사용할 수 있습니다 생각하지만, 좀 더 직접적인 방법이 있어야처럼 보인다)

답변

3

제 경험상 엔티티 당 하나의 컨트롤러를 엄격하게 설정하는 것은 쓸모가 없습니다. 즉, 컨트롤러 동작은 둘 이상의 유형의 엔터티에서 작동 할 수 있어야하며 작동 할 수 있어야합니다. 이 경우 가장 좋은 옵션은 EmailTypes 목록을 검색하여 서비스 클래스로 추상화 한 다음 EmailController.Create()EmailTypesController.Index() 모두에서 호출하는 것입니다.

그런 다음 작업보기에 대해 IList<SelectListItem> EmailTypes { get; set; } 속성을 ViewModel에 추가 할 수 있습니다.

관련 문제