기본 컨트롤러에서 일부 데이터를 가져 와서 목록에 저장하려는 고유 한 시나리오가 있습니다. ViewData와 마찬가지로 내보기에서 목록에 액세스 할 수 있어야합니다. 모든 페이지에서이 목록을 사용하며 ViewDataDictionary에서이 목록을 누르는 것보다 더 깨끗한 솔루션을 원합니다.ASP.NET MVC는 ViewData, ViewModel 또는 Session없이 뷰에서 컨트롤러로 정보를 전달합니다.
솔루션을 찾으려고 시도한 후에 내 목록을 보유 할 속성이있는 사용자 지정 ViewPage를 만들 것이라고 생각했습니다. 내 사용자 지정 ViewPage는 System.Web.MVC.ViewPage에서 상속됩니다. 그러나 MVC가 컨트롤러에서 뷰 데이터를 뷰로 전달하는 위치를 알 수 없습니다. 더 중요한 것은 어떻게 내 목록을보기로 전달할 수 있습니까?
도움 주셔서 감사합니다.
수정 ....
죄송합니다. 혼란을 피하기 위해 가능한 한 간단하게 질문을하려고 노력했습니다. 분명히, 그게 작동하지 않았다 :)
나는 .net mvc 프로젝트에서 내 자신의 세션 관리를 구현하고있다. 요청이 들어 오면 내 기본 컨트롤러는 세션 쿠키가 OnActionExecuting 메서드의 요청과 함께 전송되었는지 확인합니다. 세션 쿠키가 전송되면 내 컨트롤러가 데이터베이스에 도달하여 사용자의 세션 정보를 검색합니다. 세션 정보 (userid 등)는 List 객체에 저장되고 "Sess"라는 속성에 저장됩니다.
나는 이런 식으로 내보기에서 수신 세션 목록에서 요소에 액세스 할 수 있도록하려면 :
이그래서, 어디에서 어떻게 내가 내 컨트롤러는 내 의견에 수신 세션 목록을 넘겨받을 수 있나요?
저는 이것이 사용자 지정 세션 관리가 일반적으로 .net에서 구현되는 방식이 아니라는 것을 알고 있습니다. 그러나 이것은 내 프로젝트를위한 가장 단순하고 청결한 솔루션이 될 것입니다.
지금까지 도움을 주신 모든 분들께 감사드립니다.
RenderAction과 같은 사운드가 작업에 더 적합 할 수있는 시나리오 중 하나입니다. 모든 페이지 (예 : 메뉴)에서 렌더링해야하는 데이터가있는 경우 RenderAction을 사용하면 훨씬 쉽게 처리 할 수 있습니다. 그것은 기본적으로 라이프 사이클을 거치며 공유되는 앱의 조각 부분 (메뉴, 광고, 위젯)을 처리 할 수있는 가장 쉬운 방법입니다. – Jab
Jab와 동의합니다. 필요한 동적 데이터가 필요하면 RenderAction을 사용하십시오. (원하는 경우 RenderPartial에 모델을 선택적으로 제공 할 수 있습니다.) – mare