元々私のビューに送信されたIDを保持するために何らかの理由で非表示フィールドを使用しなければなりませんでした(ViewModelはこのIdで私のビューに送られます)。私は有効なID値を送信していることを知っています...それは問題ではありません。PostBackの値を失う
たとえば、私はCarIdを持つViewModelを使用しています。実行時にチェックし、有効な整数です。この整数は、このビューに送信したコントローラのアクションから渡された整数と同じです。
私はRazor経由でビューのマークアップのどこにでもそのIDを使用/参照していないので、ポストバック時にそれが保持されていないのが問題です。マークアップでそのフィールドを参照すると、ポストバックが含まれています。
モデル全体を保持するようにレイアウトにしていますが、関連するコントローラの更新アクションにヒットしたときにそのIDを保持しません。
この記事は、バック、私が持っているとき@using (Html.BeginForm(null, null, FormMethod.Post, new { @model = Model }))
だから、これを追加するか、他Idが、私はファンダメンタルズのようここに欠けているものを知っているのViewModel
@Html.HiddenFor(model => model.CarId)
誰でも中に他の値に保持されませんか?
はい、Hiddenを使用する必要があります。悪意のあるユーザーがFirebugなどでその値を変更できるようになると、そのフィールドにあるサーバー側のチャックを倍増する必要があります(たとえば、IDが現在のユーザーの有効なオブジェクトの1つであるかどうかを確認してください)。 – Romias