0

ビューモデルクラスにブール値があります。ブール値がtrueかfalseかを確認するifステートメントがあります。falseの場合、値をtrueに設定して、ビューを呼び出します。ビューには、クリックすると更新されてビューを再度呼び出すボタンがあります。私の問題は、ビューがロードされたときにブール値がfalseに設定され続けることです。なぜこれが起こっているのか分かりません。ブール値が変更されないようにする方法はありますか?

4

1 に答える 1

4

MVCはステートレスであるため、モデルインスタンスはサーバー呼び出し間で永続化されません(データベースに保存するなどして手動で行う場合を除く)。モデルがアクションメソッドの引数であると仮定すると、そのモデルで値が入力される唯一の方法は、(1)そのプロパティのデフォルト値(この場合はfalse)、(2)のURLである場合です。リクエスト、または(3)送信されたフォームへの入力の場合。

ビューをリロードするボタンがフォームの送信を行う場合は、次のようにして値を永続化できます。

@Html.HiddenFor(m => m.BoolProperty)

あなたの見解では。ボタンがURLを呼び出してページを更新する場合は、boolプロパティをルート値としてURLに追加する必要があります。

var url = Url.Action("MyAction", "MyController", new { m.BoolProperty });
于 2012-10-28T20:52:27.143 に答える