2012-11-01 2 views
1

내 viewModel에서 현재 세션 값을 가져 오려고합니다.녹아웃의 세션 값

self.currentUserId = ko.observable(HttpContext.Current.Session["UserID"]); 

을하지만 그것은

ReferenceError: HttpContext is not defined. 

방법으로 HttpContext를 정의하는 것을 나에게 오류를 보여주는 : 그 동안 나는 다음과 같이 썼다? 또는 현재 세션 값을 가져올 방법이 있습니까?

+1

당신은 어떤 기술을 사용합니까? Webforms 또는 MVC? 당신의 전망 엔진은 무엇입니까 : aspx, 면도기? 귀하의 코보기 모델이 귀하의보기에 인라 인되어 있거나 별도의 js 파일에 있습니까? – nemesv

+0

aspx 뷰 엔진과 함께 webforms를 사용하고 있습니다. 내 viewmodel 별도의 js 파일에 있습니다. – akeeseth

답변

5
는 명세서 변경

웹 양식 및 뷰 모델을 사용하여 응용 프로그램이 영문 페이지와 인라인 경우

self.currentUserId = ko.observable(HttpContext.Current.Session["UserID"]); 

으로

self.currentUserId = ko.observable('<%=HttpContext.Current.Session["UserID"]%>'); 

경우보기의 인라인 뷰 모델 면도기보기 엔진 MVC

self.currentUserId = ko.observable('@HttpContext.Current.Session["UserID"]'); 

당신의 ViewModel 외부 JS 파일에있는 경우는, 먼저 당신은 JS 외부 파일에 HttpContext.Current.Session["UserID"]을 사용할 수 없습니다하는 JS 변수에 저장하고이 같은

를 JS에서 사용합니다. <your_view_model_js> 파일 사용

<script type="text/javascript" src='<path_of_knochout.js>'></script> 

<script type="text/javascript"> 
    var userId = '<%=HttpContext.Current.Session["UserID"] %>'; 
</script> 

<script type="text/javascript" src='<your_view_model_js>'></script> 

self.currentUserId = ko.observable(userId); 
+0

현재 작동 중입니다. 감사합니다 – akeeseth

+0

그것은 나를 위해 일하고있어 :) – user2475096