2

我已经尝试了“所有”可能的方式将 screen.width vlaue 从 aspx 页面上的 JS 脚本发送到后面代码中的 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;
}

无论我尝试什么,s总是“”

上面有问题,每个人似乎都在这样做并且它有效?

4

4 回答 4

2

呈现的隐藏字段的 ID 不是“hiddenfield”——它将类似于 ctl00_bodycontent_hiddenfield。

尝试使用

$('[id$="hiddenfield"]') 

作为选择器。

于 2012-06-20T08:17:02.787 回答
1
<asp:HiddenField ID="hiddenfield" runat="server" ClientIDMode="Static">
</asp:HiddenField >

如果您使用 ASP.NET 4 或使用,请确保隐藏字段的客户端 ID 模式是静态的

$('#<%= hiddenfield.ClientID %>').val(screen.width); 
于 2012-06-20T08:20:39.403 回答
0

这应该得到正确的选择器:

$('#<%= hiddenfield.ClientID %>').val(screen.width); 
于 2012-06-20T08:17:55.193 回答
0

检查页面的视图源并找出元素的正确ID,然后在其上使用jquery选择器,然后在页面加载检查request.form集合以检查隐藏变量是否进入发布请求

于 2012-06-20T08:19:59.960 回答