淘汰赛中的会话价值

时间:2012-11-01 08:35:21

标签: javascript asp.net knockout.js

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

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

但它显示我的错误

ReferenceError: HttpContext is not defined.

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

1 个答案:

答案 0 :(得分:5)

更改您的陈述

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

如果您使用webform和viewmodel的应用程序与aspx页面内联

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

如果MVC使用具有内嵌视图模型的剃刀视图引擎

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

如果你的viewmodel在外部js文件中,那么首先将它存储在js变量中并使用js

之类的,你不能在外部js文件中使用HttpContext.Current.Session["UserID"]

<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>

<your_view_model_js>文件中使用

self.currentUserId = ko.observable(userId);