asp.net将JS / jquery中的值传递给c#后面的代码

时间:2012-06-20 08:12:45

标签: c# javascript jquery asp.net code-behind

我尝试了“每种”可能的方式将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;
}

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

上面有些问题,每个人似乎都是这样做而且有效吗?

4 个答案:

答案 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>