如何获得会话值,在asp.net MVC外部JavaScript文件的tempdata
本文关键字:外部 MVC JavaScript 文件 tempdata net asp 会话 何获得 | 更新日期: 2023-09-27 18:12:19
我需要访问外部js文件中的会话值。我试过了,
var userid = '@HttpContext.Current.Session["UserID"]';
不能使用,因为变量userid右边是字符串。谁能给我提个主意?
您可以访问.cshtml
中的Session
变量,并通过调用外部.js
文件的函数将其传递给外部javascript文件
var userid = '@Session["UserID"]';
externalJsFunction(userid);
你可以将session分配给一些隐藏的字段,并在文档中获取隐藏字段的值(session值)。
我有一个解决办法。在你的网站布局中定义任何空的div,并设置它的数据属性值与会话值,如果你使用html5作为,
<div id="sessionDiv" data-id="@Session["UserID"]"></div>
现在在你的外部js文件中访问这个div
var userid=$('#sessionDiv').attr('data-id');
您可以在.cshtml
文件的顶部添加script
标记,并将userid
分配给全局变量。然后在所有javascript文件中都可以访问这个变量。
index.cshtml
...
<script>
document.mynamespace = {};
document.mynamespace.userid = '@HttpContext.Current.Session["UserID"]';
</script>
....
javascript.js
var userid = document.mynamespace.userid; //do something with userid
mynamespace是一个代理对象,这样你就不会污染全局命名空间。