[英]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.