如何获得会话值,在asp.net MVC外部JavaScript文件的tempdata

本文关键字:外部 MVC JavaScript 文件 tempdata net asp 会话 何获得 | 更新日期: 2023-09-27 18:12:19

我需要访问外部js文件中的会话值。我试过了,

var userid = '@HttpContext.Current.Session["UserID"]';

不能使用,因为变量userid右边是字符串。谁能给我提个主意?

如何获得会话值,在asp.net MVC外部JavaScript文件的tempdata

您可以访问.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是一个代理对象,这样你就不会污染全局命名空间。