この問題はあまり頻繁には表示されませんが、レイアウトを使用する.cshtmlがあります。レイアウトでは私が持っている:私たちは常にそうであるように、このレイアウトを使用してPOST後のViewModelデータの損失
@using (Html.BeginForm(null, null, FormMethod.Post, new { @class = "someCssClass", @id = "UserForm" }))
{
...rest of the code
}
私の主な.cshtmlが上に定義されたモデルがあります:
@model CarViewModel
@{
Layout = "~/Views/Shared/_CarLayout.cshtml";
}
をそれは私のアクションメソッドに戻って取得すると、
public ActionResult Cars(CarViewModel model)
{
carBL.RemoveCars(model.CarIds, model.DealerId);
...
}
私はここで何が必要なのか、なぜこれが起こっているのかよく分かりません。通常、私はそれをautobindで正常に戻します。モデルがRAzorを使ってマークアップで使用されたときに、返されたViewModelでうまくポストバックされますが、それらのフィールドを使用していない場合は、そうではありません。私はマークアップでそれらを使用しないでください私はViewModelからxフィールドを使用していないので、永続性を強制するために、隠し値としてそれらを送り返す必要があります(これは、フォームでそれらを使用した場合、 )?
Html.BeginFormはフォームをレンダリングするだけで、 '...残りのコード 'を見る必要があります。アクションに送信されるもの(およびバインドされるもの)は、フォームの要素によって決まります。 – veblock