簡體   English   中英

將javascript變量分配給C#變量(ASP.net)

[英]Assign javascript variable to C# variable (ASP.net)

我知道我可以將C#變量分配給js:

<script >
var x = <%=CsharpVar%> ;
</script>

這是工作。

但有選擇做相反的事情嗎? 我的意思是這樣的(它不適合我):

<script >
var x= "Exmp";
<%CsharpVar=%>=x ;
</script>

謝謝!

這是不可能的,因為你必須考慮如何在asp.net中生成頁面

服務器生成頁面,然后將其推送到客戶端。 因此,它可以將c#變量添加到頁面中並執行其他操作,但一旦推送,它就不能再進行交互。

將數據從javascript代碼恢復到C#的唯一方法是將其發送到服務器。

因此,例如,如果用戶填寫表單上的文本框,他們必須按提交,以便在服務器知道任何內容之前將其推送到服務器。 它們完全斷開連接,並且頁面和服務器之間可能發生的唯一通信是它專門發送請求(例如,提交表單)。

當提交表單或類似內容時,頁面將向服務器發送類似“加載更新配置文件頁面,並且我在文本框中放置的名稱為dave”的信息,然后服務器可以弄清楚如何處理它收到的數據,例如。 將此人的姓名更新為“dave”。

如果您想要更加動態,可以使用ajax更新某些內容而無需刷新整個頁面。 許多網站在您更新設置時執行此操作,例如。 你單擊一個復選框來執行某些操作,它將執行ajax請求(基本上與上面的示例相同,但它在后台安靜地發生)。

無論哪種方式,你都需要花一些時間來了解asp.net是如何運作的,我認為要正確理解發生了什么,以及為什么你不能做你想做的事情。 最簡單的思考方式是,當服務器顯示您的頁面並將其發送給您時,它會將其放入一個框中,並將聯邦快捷方式發送到您的家中。 如果你對它做任何事情,那么服務器就不會有任何線索,或者能夠將任何內容放入C#變量等,除非你做了所有的更改,並且將它聯合起來。

要將javascript值分配給C#變量,可以使用帶有屬性runat = server的隱藏字段並獲取此值服務器端。

像SLC寫的另一個解決方案是將值發送到服務器。 我已經使用httphandler + ajax調用將輸入的值存儲在服務器會話狀態並重用服務器端。

暫無
暫無

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

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