Создайте переменную javaScript в коде позади asp.net

Как зарегистрировать переменную Javascript на стороне сервера (backend) и получить доступ к ней на стороне клиента (файл Javascript) без скрытого поля, Literal и т.д.?

Ответ 1

Вы можете использовать RegisterClientScriptBlock -функцию из страницы ClientScriptManager.

Page.ClientScript.RegisterClientScriptBlock(Page.GetType, "initMyClientVariable", "var myClientVariable=null;", True)

РЕДАКТИРОВАТЬ: согласно вашим новым данным, вы хотите зарегистрировать массив клиентов, используйте метод ClientScriptManager RegisterArrayDeclaration. p >

Пример VB.Net:

Dim myArrayValue As String = """1"", ""2"", ""text"""
Page.ClientScript.RegisterArrayDeclaration("myClientArray", myArrayValue)

Согласно новой информации в моих комментариях, вам нужен доступ к этой переменной из внешнего js файла: вы должны передать js-array в качестве аргумента функции в js файле. Например:

callFunctionInJsFile(checkBoxes);

Ответ 2

Вы можете поместить следующий код в файл .aspx...

<script type="text/javascript" >
    var date1 = "<%: DateTime.Now %>";
    var date2 = "<%= DateTime.Now %>";
</script>

<%:  %> works under ASP.NET 4

Ответ 3

Вы можете поместить литерал в xml-часть кода и присвоить этому литералу некоторый текст:

myLiteral.Text = "<script language=\"javascript\">var myVar = 24;</script>";

Это делает myVar глобально доступным на стороне клиента после его рендеринга. Вы также можете использовать объект ClientScriptManager для использования Asp.Net для ввода сценариев и переменных.

Ответ 4

Сначала разместите < asp: Literal ID = "Literal1" runat = "server" > </asp: Literal > тег в <head> вашего .aspx файла.

Затем в коде на стороне сервера в файле .aspx.cs сделайте что-то вроде Literal1.Text = "< script type = \" text/javascript\ " > var таймер = 3600 </script> " , и у вас есть переменная javascript, называемая таймером.

Что это. Получайте удовольствие!