淘汰赛中的会话价值

ake*_*eth 1 javascript asp.net knockout.js

在我的viewModel中,我想获取当前的会话值.为此我写的是这样的:

self.currentUserId = ko.observable(HttpContext.Current.Session["UserID"]);
Run Code Online (Sandbox Code Playgroud)

但它显示我的错误

ReferenceError: HttpContext is not defined.
Run Code Online (Sandbox Code Playgroud)

如何定义HttpContext?或者有没有办法获得当前的会话值?

Yog*_*pta 5

改变你的陈述

self.currentUserId = ko.observable(HttpContext.Current.Session["UserID"]);
Run Code Online (Sandbox Code Playgroud)

如果使用的表单,视图模型您的应用程序内嵌aspx页面

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

如果MVC与剃刀视图引擎具有内联视图模型的视图

self.currentUserId = ko.observable('@HttpContext.Current.Session["UserID"]');
Run Code Online (Sandbox Code Playgroud)

并且如果您的视图模型是在外部js文件,那么首先将其存储在一个js变量并使用该js的

比如,你不能HttpContext.Current.Session["UserID"]在外部的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>
Run Code Online (Sandbox Code Playgroud)

<your_view_model_js>文件中使用

self.currentUserId = ko.observable(userId);
Run Code Online (Sandbox Code Playgroud)