如何在服务器端(后端)注册Javascript变量并在客户端(Javascript文件)访问它,没有隐藏字段,Literal等?
答案 0 :(得分:8)
您可以使用Page的ClientScriptManager中的RegisterClientScriptBlock - 函数。
Page.ClientScript.RegisterClientScriptBlock(Page.GetType, "initMyClientVariable", "var myClientVariable=null;", True)
编辑:根据您的新信息,您要注册客户端数组,请使用ClientScriptManager的RegisterArrayDeclaration方法。
VB.Net示例:
Dim myArrayValue As String = """1"", ""2"", ""text"""
Page.ClientScript.RegisterArrayDeclaration("myClientArray", myArrayValue)
根据我的评论中的新信息,您需要从外部js文件访问该变量:您应该将js-array作为参数传递给js-file中的函数。例如:
callFunctionInJsFile(checkBoxes);
答案 1 :(得分:4)
您可以将以下代码放在.aspx文件中......
<script type="text/javascript" >
var date1 = "<%: DateTime.Now %>";
var date2 = "<%= DateTime.Now %>";
</script>
<%: %> works under ASP.NET 4
答案 2 :(得分:3)
您可以在代码的xml部分放置一个文字,并为该文字指定一些文本:
myLiteral.Text = "<script language=\"javascript\">var myVar = 24;</script>";
这使得myVar
在呈现后在客户端全局可用。您还可以使用ClientScriptManager对象来使用Asp.Net来注入脚本和变量。
答案 3 :(得分:1)
首先放置&lt; asp:Literal ID =“Literal1”runat =“server”&gt;&lt; / asp:Literal&gt; &lt; head&gt;中的标记您的.aspx文件。
然后在.aspx.cs文件的服务器端代码中,执行类似 Literal1.Text =“&lt; script type = \”text / javascript \“&gt; var timer = 3600&lt; / script&gt;“,你有你的javascript变量叫做计时器。
就是这样。玩得开心!