私はHtml.TextBox()のようなフィールドが2つの値を受け入れることを理解しています。最初のものは名前で、2つ目は値です。 Html.TextArea()も同様です。しかし、フォームがAJAXとして送信され、フォームが置かれているdivがサーバーからのビューに置き換えられた場合、フォームフィールドは以前の値を取ることを主張します。画像は千の言葉の価値がある:私は、コントローラとモデル上のすべてをチェックしたASP.Net MVCのフォームフィールドはどこから値を取得しますか?
image http://img132.imageshack.us/img132/4171/aspnetmvcbug.png
と画像はビュー自体をデバッグするからです。モデルは空ですが、モデルから生成されたフィールドは以前の送信の値をとります。
ああ!だから私はリダイレクトするので、AJAXを使用しないときはモデルの状態はきれいです。メソッドが成功したときにModelState.Clear()を追加すると固定されます。それが私がModelStateを破壊する方法なのでしょうか? – Pablo
ModelState.Clear()は使用するのが大丈夫です - 私はコード内のいくつかの場所で使用します。 ModelStateからの検証メッセージ、およびポストバック前のフォームの値はクリアされますが、実際に問題がないと思っている限り、それをクリアします。 –