如何在c#代码隐藏变量中分配Javascript返回值
如何在页面加载时将javascript返回值分配给c#code behind变量。我正在努力做到这一点。请参见下面的示例。我想要这样的精确结果 注意:我已经发布了一个类似这样的问题,但这没有什么意义如何在c#代码隐藏变量中分配Javascript返回值,c#,asp.net,C#,Asp.net,如何在页面加载时将javascript返回值分配给c#code behind变量。我正在努力做到这一点。请参见下面的示例。我想要这样的精确结果 注意:我已经发布了一个类似这样的问题,但这没有什么意义 Javascript: <script> function GetValue() { return 10; } </script> C#.NET protected void Page_Load(object sender, EventArgs e) { int Data
Javascript:
<script>
function GetValue() {
return 10;
}
</script>
C#.NET
protected void Page_Load(object sender, EventArgs e)
{
int Data
ClientScript.RegisterStartupScript(this.GetType(), "GetData", "a=GetValue();alert(a)", true);
Data=a;//a is Javascript Variable
}
Javascript:
函数GetValue(){
返回10;
}
C#NET
受保护的无效页面加载(对象发送方、事件参数e)
{
整数数据
RegisterStartupScript(this.GetType(),“GetData”,“a=GetValue();警报(a)”,true);
Data=a;//a是Javascript变量
}
在表单中选择一个隐藏字段或标签。使用document.getElementById('ID')将返回值分配给隐藏表单。值=10代码>
从CodeBehind调用此函数,并在CodeBehind中获取Hiddnefield的值。
我希望这能有所帮助。更清楚地说,做一些像这样的事情
在HTML中定义如下标记
<asp:HiddenField ID="hfData" runat="server" />
function putData()
{
document.getElementById('hfData').value = 10;
}
protected void Page_Load(object sender, EventArgs e)
{
int Data = hfData.Value;
}
然后在你的页面上做这样的事情
<asp:HiddenField ID="hfData" runat="server" />
function putData()
{
document.getElementById('hfData').value = 10;
}
protected void Page_Load(object sender, EventArgs e)
{
int Data = hfData.Value;
}
这将在服务器端获取客户端数据以供进一步处理您可以将JavaScript值存储在隐藏变量中,然后从后面的代码中访问该值。您所要求的是不可能的。页面加载是aspnet webforms请求/响应生命周期的一部分。这决定了生成的页面内容
生成页面内容后,JavaScript将在客户端浏览器上运行。因此,无法使用任何服务器端方法来获取页面生成的价值
您可以将该值作为查询字符串传递、发回值或使用web服务。这实际上与您之前提出的问题相同……流的可能重复项不正确。无法在页面加载中获取数据中的值。原因是ClientScript.RegisterStartupScript将在页面加载事件完成后执行Javascript。所以不能这样设置值。你存储价值的目的是什么?请记住,您可以使用javascript或jquery在客户端存储该值。该值的上下文是什么?它不会工作,因为javascript函数将在页面加载事件完成后执行。所以,在第一次页面加载时,hiddenfield值始终保持为空。