2016-06-08 3 views
0

MVC 5에서 웹 페이지를 개발 중이며 언제나 MVC에서 개발 중입니다.모델 내부에 모델 속성을 채우십시오.

저는 항상 프로그래밍 기법의 새로운 방식/우수 사례를 배우려고합니다. 지금은 ViewModels로 뭔가를 발견했습니다.

예를 들어, 드롭 다운 목록을 채우기 위해 사전 특성이있는 여러 페이지에 대해 동일한 ViewModel을 사용하고 있습니다.

그래서 정상적으로 "SetupViewModel"과 같은 컨트롤러에 개인 메서드를 만든 다음 모델 속성에 사전을 채우고 모델 생성자 안에 빈 사전을 만드는 "failsafe"만 채 웁니다.

하지만이 프로젝트에서 저는 모델 생성자에서 직접 ddl에 대한 목록을 반환하는 서비스 메서드를 호출하고 바로 거기에 채우려 고 시도 할 것이라고 생각했습니다.

이러한 방식으로 장점이나 단점이 있습니까? 가장 좋은 방법은 무엇이라고 생각하니? 왜냐하면 나는 "setupViewModel"- 컨트롤러의 메소드와 일부 try/catch 또는 충돌을 방지하는 뭔가가있는 경우 데이터베이스가 다운 될 경우 여전히 빈 값이있는 페이지를로드 할 수 있고, 내가 DB에서 아무것도 얻을 수 없다면 빈 목록을 반환하는 것과 같은 서비스에 fail-safe를 추가하지 않으면 VM이 직접 중단됩니다.

그래서 똑같이 많이 개발되었지만 다른 위치에 있습니다 (물론 저는 ofc 서비스에서 항상 안전 할 수 있습니다).

그러나 가장 중요한 질문은 모델 또는 컨트롤러의 모델 속성을 채우는 것이 가장 좋습니다.

답변

0

개인적으로 MVC에서 모델 관심사로 데이터 레이어에 액세스하는 것을 참조하십시오. 컨트롤러는 가능한 한 적은 일을해야합니다. 이상적으로 나는 생성자에서 먼저 빈 사전에 사전을 초기화 한 다음 try..catch (오류가 발생하지 않음)에서 사전에 대한 데이터베이스 값을 가져 와서 다시 설정합니다.

+0

그러나 모델은 try/catch를 많이 사용하여 "지저분 해"졌습니다. db 연결이 끊어지면 서비스 메서드에서 빈 목록을 반환 할 수 있습니다. 그러나 이것은 아마도 코드가 어떻게 보이는지 개인적 일뿐입니다. 그것은 똑같은 일을합니다 : P – Fisken

관련 문제