繁体   English   中英

如何在C#中访问JS变量

[英]How to access JS variable in C#

假设我有

<div id="blah">500</div>

(上下文:asp.net aspx页)如何允许ac#代码访问该值?

<%
    int numberiwant = ###; // Ideally 500
%>

我在想一些类似jQuery的东西:

<script type="text/javascript">
var value = $('#blah').html();
// Then do some magic and pass to c#?
</script>

有没有更好的办法?

使用隐藏的输入框

<input id="hiddenControl" type="hidden" runat="server" />   

使用javascript在输入框中输入您的值

//call this method before you postback, maybe on form submit
function SetPostbackValues() {
  var hiddenControl = '<%= hiddenControl.ClientID %>';
  document.getElementById(hiddenControl).value = 500; 
  //or some other code to get your value
}

使用服务器端的输入框访问值

protected void btnSubmit_Click(object sender, EventArgs e) {
   var hiddenValue = hiddenControl.Value;
}

您可以改用服务器端div,例如ie;

<asp:Panel ID="blah" runat="server">500</asp:Panel>

然后,您可以在服务器端访问它及其内容。

或者

<div id="blah"><asp:Literal ID="blahContent" runat="server" Text="500" /></div>

更新:问题得到澄清后,很明显这是行不通的。 然后,唯一的解决方案是使用javascript获取值,然后使用AJAX将其发送到服务器。

生成HTML时, <% .. %>的C#代码在服务器上运行。 当值通过AJAX更新时,所有这些都在客户端上发生-在C#完成运行很长时间之后。

Ajax,进行搜索,阅读,找到一个好的库并开始实施

服务器端永远无法直接访问客户端变量(javascript)。 您必须以某种方式通过查询或发布或通过AJAX将它们发送到服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM