public ActionResult SomeAction(int Id){
//Id is set to 2
var model = //get some thing from db using Id(2);
//Now model.Id is set to 9;
return View(model);
}
----------View----------
@Html.HiddenFor(x => x.Id)
ソースを表示すると、この非表示フィールドは2ではなく9に設定されます。代わりにモデルにマップする方法URLルーティング情報へのマッピング?HiddenFor(x => x.Id)にViewModelの代わりにUrlParameterが設定されています
P.S.私はルーティング情報を変更しない限り、私はいい探しているURLを失うので、私はパラメータの名前を変更しないことを好むだろう。私はそれをして、それは動作しますが、私が望むものではありません。
ビューをレンダリングする前にモデル値を適切に設定していないようです。それはあなたが見ているものを記述する唯一の方法だと思われます。 –
あなたはあなたのビューに@モデルを入れてみましたか? –
はい、私はモデルに正しくマッピングされているビューにいくつかの他の "HiddenForの"があります。このマップのみが正しくマッピングされていません。アクションのパラメータ名をidからx_idに変更した後、正常に機能しました。しかし、私のURLは "/ account/2"から "/ account?x_id = 2"になりました。 –