簡體   English   中英

如何在JavaScript中使用asp.net會話?

[英]How to use asp.net sessions in javascript?

我在Asp.Net中有一個包含3頁的表單,方法是使用下一個按鈕轉到下一頁。 到目前為止,我在C#中所做的就是創建像這樣的會話:

Session["FirstName"] = txtFirst.Text;
Session["LastName"] = txtLast.Text;

比我在該“下一步”按鈕上執行的操作要多的是一個javascript函數,在該函數中,我試圖像這樣訪問這些會話:

<script type="text/javascript">
    var fn = '<%=Session["FirstName"]%>';
    var ln = '<%=Session["LastName"]%>';
</script> 

但是它不起作用,當我調試時,它得到的是我們在引號內輸入的內容: http : //prntscr.com/ag3wdo

該語法: <%=Session["FirstName"]%>是一種特殊的asp.net語法。 需要在服務器上對其進行處理,然后在該服務器上將其替換為該會話值的值。 只有這樣才能將其發送到瀏覽器。

一些重要的注意事項:

  • 瀏覽器無法理解<%= ... %>語法
  • 服務器需要對其進行處理,因此它必須位於已處理的文件中,例如.aspx或.ascx
  • javascript文件(.js)是按原樣發送的,沒有進行額外的處理,因此此語法在這里不起作用。

您需要直接在aspx頁面(而不是.js文件)中擁有該腳本,或者需要在aspx頁面中的腳本中設置變量的值。

或者,您可以發送要由.NET引擎評估的js文件(創建處理程序),但這並不是一件好事,因為一般規則是,因為它將處理所有js文件並在您不這樣做的地方增加開銷需要它。

不得已時,您可以在隱藏字段中設置值,以便稍后由javascript訪問。 請參閱在JS中訪問Asp.Net會話變量

這些標記很可能位於.js文件中,而不是aspxascx頁面中。 這些標簽僅適用於這些擴展。 Javascript文件按原樣發送。

您可以做一些事情:

  • 在您的頁面(可能是從主頁)中創建一個安裝存根,該存根可以在javascript中設置變量,以便以后使用。
  • ashx處理程序加載文件,然后手動替換會話標簽。
  • 將整個Javascript文件加載到頁面中。 當文件很大時,這並不是一個好主意。

暫無
暫無

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

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