2009-12-08 3 views
0

이것은 모순이나 불꽃 놀이처럼 들리지만 실제로는 그렇지 않을 것으로 기대하고 있습니다.여러 asp.net MVC 페이지를 유지하는 적절한 방법 (중요하지 않은) 상태입니다.

배경 :

나는에서 사용자의 로그의 전체에 걸쳐 몇 가지 기본 설정을 유지할 필요가 이러한 목표를 달성하기 위해 컨트롤러 계층에 전달 될 수 있지만 이러한 기본 설정은 대부분 무언가를 볼 방법에 영향을 미칩니다.. 이러한 사용자/세션 환경 설정 중 하나라도 데이터에 직접 영향을주지 않아야합니다.

질문 :

컨트롤러가 사용할 수 있도록 편리한 I 일시적으로 (에 의존하지 않음), MVC 설정에서 페이지/컨트롤러에서 데이터를 저장하려면 어떻게

.

세션을 생각하고 있지만 세션 및 asp.net MVC에서 검색하면 필요한 것이 아닌 tempdata에 많은 자료가 표시됩니다. 오히려 불필요한 데이터의 사용자 세션 별 사전이 이상적입니다.

감사 아담

답변

3

옵션 1. 클라이언트 측에 저장합니다. 이 설정을 쿠키에 넣으면 다음 요청시마다 사용할 수있게됩니다.

옵션 2. 서버 측에 저장합니다. 세션에 넣고 사용자 ID에 바인드하면 쉽게 액세스 할 수 있습니다.

옵션 3. 데이터베이스에 저장합니다. 따라서 각 요청마다 db에서 이러한 설정을로드하십시오. 또는 캐시하십시오.

0

내가 세션을 사용하지 않는 좋은 이유가 믿지 않는다. 나는 무언가가 페이지 전반에 걸쳐 요구되는 순간 더 이상 '일시적'이 아니라고 말하고 싶다는 유혹을받을 것입니다.

0

필요하면 데이터베이스 테이블이 뒷받침되는 MS의 분산 캐시 velocity을 사용할 수 있습니다. 이 방법으로 설정을 유지하는 것은 약간의 추가 메모리 만 필요하므로 추가 요청으로 서버를 정지시키지 않아야합니다. 설정이 최근에 사용되지 않았거나 충분한 설정이 캐시에 저장되면 설정도 만료됩니다.

원하는 속도로 수행 할 수있는 속도 내에서 session provider도 있습니다.

0

컨트롤러/뷰 페이지에서 세션 개체를 사용하는 것은 아마도 원하는 작업 일 것입니다. 일반적으로 사용자 선택을 데이터베이스 (환경 설정 테이블)에 저장 한 다음 세션을 사용자의 환경 설정 객체에 대한 캐시로 사용합니다. 나는 종종 세션 (필요하다면 세션을 채우는)이 존재한다면 세션이나 세션에서 느슨하게로드되는 기본 컨트롤러에이 속성을 만듭니다.

관련 문제