サンプルの asp.net アプリ (ここにあります) では、Page Init で動的コントロールを作成します。次に、ユーザーがコントロールにテキストを入力してボタンをクリックすると、すべてのコントロールが新しい値で再作成されます。
ページは、ユーザーが手動で入力したデータで最初の行に入力された値を上書きします。
html コントロールや MVC に変更せずにこれを防ぐ方法についてのアイデアはありますか?
ビューステートは Page_Init イベントでは利用できません。作成を Page_Load イベントに移動します。
最初のロードかポストバックかをコードに伝えるためにクエリ文字列変数を追加する場所で、自分自身の状態を維持するための回避策を実行することになりました。コントロールを強制的にクリアする新しい変数を使用して、同じページにリダイレクトしました。
もう 1 つの方法は、フォームの読み込み時に IsPostBack をチェックし、保存されているオブジェクトの値から ViewState に割り当てられた値を再度置き換えることでした。
ページとコントロールでViewstateを無効にしても、動的コントロールにviewstate値が入力される理由はまだわかりません。