Доступ к данным сервера или переменной в коде на стороне клиента (Javascript)
Я знаю, что мы можем использовать eval и получить доступ к общедоступному свойству, объявленному в коде C#, для доступа к переменной на стороне сервера. однако это не рекомендуется как самый безопасный способ сделать это. Каков наилучший способ доступа к переменной сервера в java-скрипте? Пожалуйста, приведите примеры веб-форм ASP.Net?
1 ответ
Переменные на стороне сервера находятся в другом юниверсе, чем переменные на стороне клиента. Эти два юниверса находятся на разных компьютерах, и единственной связью между ними является просмотр страницы и отправка сообщения на сервер.
Таким образом, во-первых, нужно передать переменную из кода на рендере html-страницы в javascript в виде числа, например:
<script>
var OurVariable = 334;
</script>
Чтобы отобразить, что у вас есть много вариантов, например, вы можете использовать Literal и отобразить его в коде как:
<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, и отправьте это на код позади