私はビューモデルを使用しています。これをアクション結果に送信して使用する場合(変更されたビューモデル)
しかし、コントローラーでは、ビューモデルのリストとオブジェクトが失われます。これは私の見解です:
@using PigeonFancier.Models
@model PigeonFancier.Models.InschrijvingModel
@using (Html.BeginForm("UpdateInschrijvingen","Melker",Model))
{
<div>
<fieldset>
<table>
@foreach (var item in Model.inschrijvingLijst)
{
<tr>
<td>@Html.DisplayFor(model => item.Duif.Naam)</td>
<td> @Html.CheckBoxFor(model => item.isGeselecteerd)</td>
</tr>
}
</table>
<input type="submit" value="Wijzigen"/>
</fieldset>
</div>
}
これは私のコントローラーで、ビューから完全なビューモデルを取得できるまで、現時点では何もしません。
public ActionResult UpdateInschrijvingen(InschrijvingModel inschrijvingsModel)
{
// inschrijvingsModel is not null, but it creates a new model before
it comes here with
//Use the model for some updates
return RedirectToAction("Inschrijven", new { vluchtId =
inschrijvingsModel.vlucht.VluchtId });
}
これは、ビューから actionresult に戻るときに新しいモデルを作成するため、null になる List およびその他のオブジェクトを含むモデルです。
public class InschrijvingModel
{
public Vlucht vlucht;
public Duivenmelker duivenmelker;
public List<CheckBoxModel> inschrijvingLijst { get; set; }
public InschrijvingModel()
{
// Without this i get, No parameterless constructor defined exception.
// So it uses this when it comes back from the view to make a new model
}
public InschrijvingModel(Duivenmelker m, Vlucht vl)
{
inschrijvingLijst = new List<CheckBoxModel>();
vlucht = vl;
duivenmelker = m;
foreach (var i in m.Duiven)
{
inschrijvingLijst.Add(new CheckBoxModel(){Duif = i,
isGeselecteerd = i.IsIngeschrevenOpVlucht(vl)});
}
}
何がうまくいかず、どうすればこの問題を解決できますか?
ありがとう