我尝试了“每种”可能的方式将asp.页面上的JS脚本的screen.width vlaue发送到后面的代码中的c#,同时我可以看到screen.width被正确分配它从未被分配给我隐藏的字段值。
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:HiddenField ID="hiddenfield" runat="server" />
<script type="text/javascript" language="javascript">
$(function(){
$('#hiddenfield').val(screen.width);
});
</script>
other content
</asp:Content>
和背后的代码:
protected void btnChartGo_Click(object sender, EventArgs e)
{
string s = hiddenfield.Value;
}
无论我尝试什么,总是“”
上面有些问题,每个人似乎都是这样做而且有效吗?
答案 0 :(得分:2)
渲染的隐藏字段的ID不是“hiddenfield” - 它将类似于ctl00_bodycontent_hiddenfield。
尝试使用
$('[id$="hiddenfield"]')
作为选择器。
答案 1 :(得分:1)
<asp:HiddenField ID="hiddenfield" runat="server" ClientIDMode="Static">
</asp:HiddenField >
如果您使用的是ASP.NET 4或使用
,请确保隐藏字段的客户端ID模式是静态的$('#<%= hiddenfield.ClientID %>').val(screen.width);
答案 2 :(得分:0)
这应该是正确的选择器:
$('#<%= hiddenfield.ClientID %>').val(screen.width);
答案 3 :(得分:0)
检查页面的视图源并找出元素的正确id,然后在其上使用jquery选择器,然后在页面加载检查request.form集合以检查隐藏变量是否在post请求中进入< / p>