@Html.HiddenFor(model => model.JobIndicator)
ページを送信した後、JobIndicatorの値が更新されません。HTMLフォームのポストバック後に非表示フィールドが更新されない
表示欄に値を入力すると値が更新されているのがわかります。
@Html.HiddenFor(model => model.JobIndicator)
ページを送信した後、JobIndicatorの値が更新されません。HTMLフォームのポストバック後に非表示フィールドが更新されない
表示欄に値を入力すると値が更新されているのがわかります。
あなたのコントローラでこれを入れて:
ModelState.Remove("JobIndicator");
は、その後、あなたの隠されたフィールドが更新されます。
だけ
@Html.HiddenFor(model => model.JobIndicator)
問題formタグの内側にこのラインを置くことを確認しますが、あなたがこの問題を解決.TOポストアクションを呼び出すときにを渡すのHTMLヘルパーは、モデルからModelState
からデータを取得していませんあなたがあなたのビューを返す前に、あなたはをポストアクションで呼び出すことができます。このようにして、ModelState
の情報はクリアされ、ビューが再生成されると再生成されます。
あなたはこの問題自分の中に、このblog
らんでこの問題(および他のソリューション)についての詳細情報を見つけることができます。解決策(これはエレガントではありませんが)は、このために基本的なHTML構文を使用して、モデルの値を使用することです。
<input type="hidden" name="JobIndicator" value="@Model.JobIndicator">
私はこの答えを愛するが、私は、この動作を憎みます。あまり直感的ではありません。私はPOSTの前にフィールド値をクライアントサイドで変更するか、新しいモデルを作成しているので、まれに表示されないようですが、値を設定すると設定したいと思います。 – LoveMeSomeCode
@ Html.HiddenFor(m => m.Name)の代わりに、を使用して問題を解決するのに役立ちました) – ravithejag
なぜ誰もこれを説明することができます。 – maxspan