2012-12-13 98 views
-1

我知道我們可以使用eval並訪問C#代碼中聲明的公共屬性來訪問服務器端變量。然而,這並不是建議作爲最安全的方式來做到這一點。在java-script中訪問服務器變量的最佳方法是什麼? 請舉例說明ASP.Net網頁表單?在客戶端代碼(Javascript)中訪問服務器數據或變量

+1

沒有辦法訪問使用客戶端的JavaScript服務器端變量。 –

回答

1

服務器端的變量與客戶端的變量位於不同的Universe中。這兩個Universe位於不同的計算機上,它們之間的唯一通信是頁面視圖,以及回發到服務器。

所以第一個是給從代碼中的變量背後的HTML頁面的呈現到JavaScript作爲一個編號,例如:

<script> 
var OurVariable = 334; 
</script> 

來呈現你有很多選擇,例如,你可以使用一個文字並使其在後面的代碼爲:

<asp:Literal runat="server" ID="txtScriptOnMe" /> 

並在後面的代碼:

txtScriptOnMe.Text = "<script> var OurVariable = 334; </script>"; 

現在ÿ你實際上已經在客戶端發送334。在使用javascript進行修改後,下一步是在服務器上發回新號碼 - 這可以僅在PostBack或Ajax Call中完成,並且可以使用隱藏輸入。

例如,你有這個輸入<input id="hidden1" type="hidden" runat="server" />和使用JavaScript,你可以改變它的值,並將其發送回服務器端,然後從後面的代碼中讀取它,並且你去了 - 你有一個來自代碼背後變量的通信並在JavaScript上。

比如,你可以寫JavaScript的

OurVariable = 221; 
document.getElementById("<%=hidden1.ClientID%>").value = OurVariable; 

,並更改到221,併發送對後面的代碼

+0

好,所以你說我可以在javascript中定義變量,但是我想要在c#代碼中定義一個動態獲取值的服務器端變量。 – hussian

相關問題