假设我有
<div id="blah">500</div>
(上下文:asp.net aspx页面) 如何允许c#代码访问该值?
<%
int numberiwant = ###; // Ideally 500
%>
我在想jQuery的一些东西:
<script type="text/javascript">
var value = $('#blah').html();
// Then do some magic and pass to c#?
</script>
有更好的方法吗?
答案 0 :(得分:4)
使用隐藏的输入框
<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;
}
答案 1 :(得分:2)
您可以使用服务器端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将其发送到服务器。
答案 2 :(得分:1)
生成HTML时,<% .. %>
内的C#代码在服务器上运行。当值通过AJAX更新时,这一切都发生在客户端上 - 很久就在C#运行完毕之后。
答案 3 :(得分:0)
Ajax,搜索它,阅读它,找到一个好的库并开始实现
答案 4 :(得分:0)
服务器端永远不会直接访问客户端的变量(javascript)。你必须以某种方式将它们发送到服务器,通过查询或发布,或通过AJAX。