2016-10-12 3 views
0

私はaspxページで次の隠し入力フィールドを持っている:背後ASP Webフォームの隠れた入力がポストバックで価値を失うのですか?

<asp:HiddenField ID="MySecretValue" runat="server" /> 

<asp:Button ID="Submit" runat="server" Text="Save" OnClick="submit_Click" CssClass="btn btn-primary" /> 

コード:

protected void Page_Load(object sender, EventArgs e) 
{ 

} 

protected void submit_Click(object sender, EventArgs e) 
{ 
    // Do some stuff 

} 

隠された入力は、いくつかのjQueryスクリプトを経由して移入されます。ユーザーがページを送信すると、submit_Clickメソッド内にいくつかのものがあり、そのページが再表示されます。しかし、ページが再表示されるとき、非表示の入力フィールドは空です。ページが再表示されたときに隠しフィールドが値を保持するようにするにはどうすればよいですか?

+0

@Samundraは、ランダムな用語を強調するために 'インラインコード 'を使用しません。 – CodeCaster

+0

デバッグして正確にあなたの価値が失われた場所を見つけようとしましたか? –

答えて

0

このコードは、ポストバック後の値を失うことはありません...この

は、pageディレクティブまたはweb.configファイルでEnableViewState="true"を有効にしてみ

.aspxの

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="StackOverflow_Solve.Others.WebForm1" EnableViewState="true" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="../js/jquery.js" type="text/javascript"></script> 
    <script> 
     $(function() { 
      //First time loaded value 
      console.log($('#MySecretValue').val()); 
      $('#setHiddenValue').click(function() { 
       $('#MySecretValue').val('1'); 
      }); 

     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <asp:HiddenField ID="MySecretValue" runat="server" ClientIDMode="Static" /> 

<asp:Button ID="Submit" runat="server" Text="Save" CssClass="btn btn-primary" 
      onclick="Submit_Click" /> 
    </div> 
    <div id="setHiddenValue">setHiddenValueByClick me</div> 
    </form> 
</body> 
</html> 

と.aspx.cs

public partial class WebForm1 : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 

     } 

     protected void Submit_Click(object sender, EventArgs e) 
     { 
      //do all stuff 
      String a = MySecretValue.Value; 
      var dd = a; 
     } 
    } 

このリンクは、ヘルプLink

+0

投稿された値をmaintianしたいので、jqueryを使って 'xyz'でフィールドに値を設定して投稿すると、ページは再表示されます - 正しい?ポストバックとビューステートの仕組みが誤解されていない限り、フィールドが再表示されると、フィールドの値は 'xyz'になります。 – adam78

関連する問題