正在服务器端初始化JavaScript变量
Initializing JavaScript Variables on Server Side
我在使用母版页的ASP.Net Web窗体(非MVC)的服务器端设置JavaScript变量时遇到问题。
基本上我想做这样的事情:
<script type="text/javascript">
var z = '<%# Request.QueryString["Env"] %>';
</script>
在我运行代码后,我看到:var z=";
我也试过:
var z='<%=Request.QueryString["Env"]%>';
在我运行该代码后,我得到了以下错误,所以我认为这是不正确的:
无法修改Controls集合,因为控件包含代码块(即<%…%>)。
在过去的几年里,我主要从事MVC开发,所以我不确定自己做错了什么。
请告诉我。
感谢
我认为在关闭body标记而不是head标记之前放置javascript是个好主意。然后您可以使用<%=语法。
您提到的javascript块是否在服务器控件内?
例如:
<head runat="server">
<script type="text/javascript">
var z = '<%# Request.QueryString["Env"] %>';
</script>
<head>
如果是,请尝试将其更改为:
<head runat="server">
<div runat="server">
<script type="text/javascript">
var z = '<%= Request.QueryString["Env"] %>';
</script>
</div>
<head>
参考:http://www.west-wind.com/weblog/posts/2006/May/27/The-Controls-collection-cannot-be-modified-because-the-control-contains-code-blocks-ie-
为了确保<%# %>
是用于迭代的,为了渲染字符串,您需要使用<%= %>
,因为它可能在服务器上运行的头上,最好避免这种情况,并使用类似的文字。
<script type="text/javascript">
<asp:literal run="server" id="txtJavaDeclarations" EnableViewState="false" />
</script>
后面的代码
txtJavaDeclarations.Text
= string.Format("var z = '{0}' ;'n", Request.QueryString["Env"]);
我很想使用
ClientScript.RegisterClientScriptBlock(GetType(), "scriptBlockKey",
"var z = '" + Request.QueryString["Env"] + "';", true);
这应该写在您需要的带有脚本标记的脚本块中(最终参数设置为true)。
它是从服务器端调用的,所以只需将其弹出到Page_Load
中即可。它的好处是在出现问题时更容易调试。
我很想用一个临时运算符I,例如对查询字符串进行null检查
string env = Request.QueryString["Env"] == null ? string.Empty :
Request.QueryString["Env"].ToString();
ClientScript.RegisterClientScriptBlock(GetType(), "scriptBlockKey",
"var z = '" + env + "';", true);
这只会使null检查更加透明,并可能为默认情况提供机会。
- 将函数的上下文应用于javascript变量
- 如何通过ajax刷新JSF填充的javascript变量
- Javascript变量赋值|
- 限制javascript变量的最小/最大整数
- 来自文本输入null的html javascript变量
- 访问jsrender模板中的全局javascript变量并更新它
- 从数据库中获取数据并插入JavaScript变量
- 如何将javascript变量传递到Meteor Spacebars模板中
- 将JavaScript变量保存到Rails模型
- 在if语句下的html中使用javascript变量
- Javascript变量分配-按类别
- 操作javascript变量[HTML]以只显示文本
- 无法比较javascript变量
- 如何将smarty变量与javascript变量进行比较
- 如何使用PHP将javascript变量添加到mysql数据库中
- Javascript 变量使用 jquery 查找变量
- 重新加载页面时Javascript变量发生变化
- 在asp classic中使用javascript变量
- 全局Javascript变量变为null
- 如何向服务器端提交javascript变量