Попытка использовать общедоступные свойства из кода C# и хотите прочитать значение переменной из функции JavaScript
Функция JavaScript:
function IsAgentInProgram()
{
var optStatus = "<%=AgentOptInStatus%>";
if (optStatus == "True")
alert("You are opted in!");
else
alert ("You are opted OUT");
}
Код С# позади
public bool AgentOptInStatus;
private void Page_Load(object sender, System.EventArgs e)
{
this.AgentOptInStatus = true;
}
Это не работает. Вывод возвращается как You are opted OUT. Я также сделал предупреждение на optStatus, и он возвращается с: "<%=AgentOptInStatus%>"
Я что-то упускаю?
@ RA19 это то, что вы ищете. stackoverflow.com/questions/1465732/… javascript - это клиентская сторона, а C# - серверная довольно большая разница в объявлении переменных.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не можете читать переменные на стороне клиента непосредственно в отделенном коде. Что вы можете сделать, так это создать скрытое поле и установить значение с помощью javascript, после чего вы сможете прочитать его на С#.
<asp:HiddenField ID = "hdnfldVariable" runat = "server" />
JS:
<script type = "text/javascript">
var somefunction = function () {
var hdnfldVariable = document.getElementById('hdnfldVariable');
hdnfldVariable.value = 'value from javascript';
}
</script>
С#:
string selected = hdnfldVariable.Value.ToString();
Другой вариант — сделать HTTP-запрос к серверу для вызова функции из контроллера, передав данные в качестве параметров.
вы можете настроить ввод значения реквизита и прочитать его с помощью js.