C# ASP.net从page_load函数中隐藏的代码中获取隐藏值

C# ASP.net从page_load函数中隐藏的代码中获取隐藏值,c#,javascript,asp.net,hidden-field,C#,Javascript,Asp.net,Hidden Field,我在javascript代码中设置了一个隐藏字段: <script type="text/javascript"> function start() { document.getElementById('Hidden1').value = "somme value"; } </script> <body> <form id="form1" runat="server">

我在javascript代码中设置了一个隐藏字段:

   <script type="text/javascript">

    function start() {            
        document.getElementById('Hidden1').value = "somme value";
     }
   </script>

 <body>

 <form id="form1" runat="server">
   <div>
      <input type="text" id="Hidden1" name="Hidden1" runat="server"/>
  <div>    
 </form>
消息是空的,我如何在我的页面加载中获取隐藏值


谢谢。

您没有将页面提交回服务器,除非您正在发布帖子,否则将无法获取页面变量

更改此项:

<form id="form1" runat="server">
 <div>
   <input type="text" id="Hidden1" name="Hidden1" runat="server"/>
 <div>    
</form>

然后单击提交按钮

从外观上总结其他人所写的内容。如果您按下提交按钮以便获得回发,则此操作有效:

<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:Button Text="Submit" ID="btnSubmit" runat="server"/>
<script type="text/javascript">
    document.getElementById('<%= HiddenField1.ClientID %>').value = "some value";
</script>

您缺少的是与jquerypost类似的内容

Web应用程序是无状态的

与前面的一些帖子一样,在服务器端获取客户端控件的值而不发生回发事件是不够的。服务器必须知道发生了什么。在客户端代码中,您可以在脚本块中获得控件的值,但是没有向服务器发送post来让它知道客户端代码中发生了什么。您需要了解,您可以将表单或至少是数据发布回服务器,或者,如果您希望在没有完整回发的情况下实现这一点,您需要学习


如果需要在没有用户事件的情况下执行此操作,请在document.ready函数中执行post。但是,这是多余的,因为您的服务器首先发布了数据,因此在document.ready中没有用户交互,服务器不会知道任何事情,尤其是在隐藏值中。

您是发布/提交还是执行get?您何时执行start js方法?没关系,我看到你已经在Startupbook中注册了,回到我的原始评论,提交页面的代码在哪里?什么代码?javascript在我的aspx页面中,我想在加载我的页面时获取代码中隐藏的字段值读取我的答案,您的aspx服务器代码在发出提交时只能读取表单元素。您必须将数据发布到服务器。我将附加我的答案。没有其他解决方案吗?我必须在页面加载中获得隐藏字段,以实现通过AJAX调用发布数据的特定行为。不,我不确定您是否正确解释了您要做的事情。如果你想设置一个html元素,但又不想以某种方式将数据提交到服务器,那么你就失去了我。谁告诉你页面上有一个提交按钮?很抱歉,您正在进行假设。如果您要阅读ASP服务器控件,则需要提交。这就是服务器端没有值的原因。你的否决票毫无意义。是的,回发与按钮无关。。这就是为什么你不调查就不能直接回答。这是有道理的。回帖在哪里?@TMcKeown:你为什么投了反对票?是否有必要显示一个按钮,并要求OP单击它,它将发回。您……因为问题是如何在服务器端获取隐藏元素的值。海报没有提供回帖的方式,没有回帖,你的答案就不起作用。我喜欢你的解决方案,因为它没有回答为什么服务器端没有价值,所以我只投了反对票。
<form id="form1" runat="server">
 <div>
   <input type="hidden" id="Hidden1" name="Hidden1" runat="server"/>
 <div>    
 <input type="submit" value="submit" />
</form>
<asp:HiddenField ID="HiddenField1" runat="server" />
<asp:Button Text="Submit" ID="btnSubmit" runat="server"/>
<script type="text/javascript">
    document.getElementById('<%= HiddenField1.ClientID %>').value = "some value";
</script>
<form id="form1" runat="server">
   <div>
      <asp:HiddenField ID="Hidden1" runat="server"/>
  <div>    
 </form>

 protected void Page_Load(object sender, EventArgs e)
 {
        if ( !Page.IsPostBack)
        {
           Hidden1.Value = "Some Val";
        }
        else
        {
           string message =Hidden1.Value;
           // remaining code
        }
 }