在asp.net后面的代码中创建javaScript变量

时间:2010-12-09 12:46:37

标签: asp.net

如何在服务器端(后端)注册Javascript变量并在客户端(Javascript文件)访问它,没有隐藏字段,Literal等?

4 个答案:

答案 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变量叫做计时器。

就是这样。玩得开心!