모든 페이지의 콘텐츠를 데이터베이스에서 가져 와서 페이지에 표시 할 수있는 ASP.NET MVC 응용 프로그램을 개발 중입니다.BaseController에 콘텐츠 액세스 논리를 추가하는 것이 좋은 생각입니까?
비전문가가 소스 코드 (예 :보기)에 들어가서 사물을 변경하지 않고도 콘텐츠를 편집 할 수 있습니다.
내가하는 방법은 각 컨트롤러가 기본 컨트롤러에서 파생된다는 것입니다. 기본 컨트롤러는 'OnActionExecuted'를 오버로드하여 현재 액션/컨트롤러에 할당 된 모든 콘텐츠를 가져올 수 있습니다.
'ContentViewModel'에서 파생 된 ViewModel을 반환하는 경우 ViewModel의 'Text'속성에 데이터베이스의 텍스트가 채워집니다.
그리고 나서 텍스트는보기에 의해 렌더링됩니다.
이 디자인의 약점을 볼 수 있습니까?
기본 컨트롤러를 사용하는 대신보기에서 호출하는 내용을 가져 오기위한 HtmlHelper 확장을 사용하는 것이 더 좋을까요?
내가 묻는 한 가지 이유는 내 자신의 기본 컨트롤러가 'Html.RenderAction'호출을 방해하는 것으로 보이는데 이는 지정된 컨트롤러가 'System.Web.Mvc.Controller'에서 직접 상속받을 것으로 기대하는 것 같습니다.