我有一些看起来像这样的代码:
<head runat="server">
<script type="text/javascript">
var params = {};
params.param1 = 'value1';
params.param2 = 'value2';
params.param3 = 'value3';
params.param4 = ''; // ASP.NET value 1
params.param5 = ''; // ASP.NET value 2
function.call(params);
</script>
</head>
如何使用ASP.NET填充param4
和param5
?我已经阅读了有关母版页和内容占位符的内容,但有没有办法让我可以执行params.param4 = '<%= var1 %>';
或params.param4 = '<asp:var />';
之类的内容?
感谢所有回答如此之快的人。我一定有一个解析错误或者让我认为这是不可能的。只是为了说明我为解决问题所做的工作:
ASPX页面:
<head>
<script type="text/javascript">
var params = {};
params.param1 = 'value1';
params.param2 = 'value2';
params.param3 = 'value3';
params.param4 = '<%= var1 %>';
params.param5 = '<%= var2 %>';
function.call(params);
</script>
</head>
CS Code-Behind:
public string var1 { get; set; }
public string var2 { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
// setup code goes here
var1 = 'param4';
var2 = 'param5';
}
注意:您的头部不需要runat="server"
,只要变量在代码隐藏中公开,就可以通过{{1}访问它们} <%= %>
。
答案 0 :(得分:2)
你回答了自己的问题。您可以在代码隐藏中声明变量,然后在代码中使用<%= %>
标记来使用它们,或者您可以使用RegisterClientScriptBlock方法将JavaScript添加到您的页面中。
答案 1 :(得分:1)
如果 不是 runat =“server”
,那么你可以做到这一点或者你可以渲染 params 数组服务器端
Page.ClientScript.RegisterArrayDeclaration("params", "'value1','value2','value3','" + value4 + "','" + value5 + "'");
答案 2 :(得分:1)
如果您的值是在类的.cs部分中声明的公共变量,则可以完全按照您的描述执行,并在服务器标记中读取它们。