サーバー側の変数にアクセスするには、eval を使用して、C# コードで宣言された public プロパティにアクセスできることを知っています。ただし、これは最も安全な方法として推奨されません。java-scriptでサーバー変数にアクセスする最良の方法は何ですか? ASP.Net Web フォームの例を教えてください。
1 に答える
サーバー側の変数は、クライアント側の変数とは異なる宇宙に存在します。この 2 つのユニバースは異なるコンピューター上にあり、それらの間の唯一の通信はページのビューとサーバーへのポスト バックです。
したがって、最初の方法は、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 に変更し、コード ビハインドで送信します