簡體   English   中英

如何在asp.net MVC中的外部JavaScript文件中獲取會話值,tempdata?

[英]How to get the session value, tempdata in external JavaScript file in asp.net MVC?

我需要訪問外部js文件中的會話值。 我努力了,

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

這不起作用,因為變量userid將右側作為字符串。 誰能建議我一個主意。

您可以通過調用外部.js文件的函數來訪問.cshtmlSession變量,並將其傳遞給外部javascript文件。

var userid = '@Session["UserID"]';
externalJsFunction(userid);

您可以將會話分配給某個隱藏字段,並在外部js文件的document.ready中獲取隱藏字段值(會話值)。

我為您提供一種解決方案。 如果您使用的是html5,則在網站布局中定義任何空的div並將其數據屬性值設置為會話值,

<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是一個代理對象,因此您不會污染全局名稱空間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM