2012-07-01 105 views
1

我使用一個視圖模型,然後我什麼時候發送到一個ActionResult其使用 (修改後的視圖模型)傳遞視圖模型來的ActionResult創建新的視圖模型

但在控制器,我失去了在列表中的對象我視圖模型。這是我的看法:

@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

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)}); 
     } 

    } 

到底哪裏出問題了怎麼我應該解決這個問題嗎?

感謝

回答

0

您需要包括所有列表和公關進入你明確定義的模型。

一旦你在POST操作您的視圖模型,你執行你的操作(創建,編輯,等..),如果你想返回到相同的觀點(有後的行動,),你需要重新- 將所有列表值(如下拉列表和複選框列表)設置爲您返回的視圖模型。

0

我已經找到了列表中的部分解決方案通過使用

並[I]代替的foreach

但對象仍然是空的,使用INT編號來代替,即使對象

與Html.hiddenfor也試過已經爲這些對象不起作用

+0

Html.Hiddenfor Works的整數 但爲什麼沒有爲對象的工作? –

+0

無法在隱藏字段中表示像那樣的對象。您需要表示組成對象的每個本地類型字段。 –

+0

好吧,如果我爲每個本地域做它通過它,謝謝 –