2016-10-16 168 views
0

我將一個列表傳遞給視圖以在網格中顯示。在網格下面,我有一個表單允許用戶向網格中提交新值。當控制器被調用時,模型似乎總是空的,我不知道我做錯了什麼,或者我應該以完全不同的方式做這件事。具有多種形式的MVC模型

視圖的relavent部分如下

@model IList<PSIApp.Models.PSM_StationTimetableView> 

@using (Html.BeginForm()) 
      { 
       <div class="panel-group"> 
        <div class="panel panel-default"> 
         <div class="panel-heading"> 
          <h4 class="panel-title"> 
           <a data-toggle="collapse" href="#collapse3">Hourly Update &#x25BC</a> 
          </h4> 
         </div> 
         <div id="collapse3" class="panel-collapse collapse in" style="width:100%; margin-left:0%; margin-right:50px;"> 
          <div class="mainformCollapse" style="width:100%; margin-left:0%; margin-right:50px;"> 
           <p class="group-header">Hourly Update</p> 
           <div class="form-group row"> 
            <label for="example-text-input" class="col-xs-3 col-form-label" id="formLabelId">BP Issued</label> 
            <div class="col-xs-3"> 
             @Html.MyTextBoxFor(p => p[0].PSM_StationBPData.BPIssued, new { @class = "generalformbox" }, false) 
            </div> 
            <label for="example-text-input" class="col-xs-3 col-form-label " id="formLabelId">BP Cancelled/Spoilt</label> 
            <div class="col-xs-3"> 
             @Html.TextBoxFor(p => p[0].PSM_StationBPData.BPSpoilt, new { @class = "generalformbox" }) 
            </div> 
           </div> 
           <div class="form-group row"> 
            <label for="example-text-input" class="col-xs-3 col-form-label" id="formLabelId">AV Issued</label> 
            <div class="col-xs-3"> 
             @Html.TextBoxFor(p => p[0].PSM_StationBPData.PostalReceived, new { @class = "generalformbox" }) 
            </div> 
            <label for="example-text-input" class="col-xs-3 col-form-label" id="formLabelId">Tendered Issued</label> 
            <div class="col-xs-3"> 
             @Html.TextBoxFor(p => p[0].PSM_StationBPData.BPTendered, new { @class = "generalformbox" }) 
            </div> 
           </div> 
           <input type="submit" value="Submit Hourly Update" class="standardsubmitbt" /> 
          </div> 
         </div> 
        </div> 
       </div> 
      } 

控制器

public ActionResult POControl(Models.PSM_StationBPData model) 
{ 
return RedirectToAction("POControl"); 
} 
+0

嘗試檢查您從瀏覽器或某個工具(如fiddler)發佈什麼值 – mahlatse

+0

您使用索引器生成表單控件,這意味着您的控制器方法需要爲'public ActionResult POControl(List model)'。但代碼沒有意義。您應該有一個視圖模型,其中包含要編輯的每個「PSM_StationTimetableView」屬性的屬性,以及要在網格中顯示的集合的「IEnumerable StationTimetableList」屬性 –

回答

0

您發送PSM_StationTimetableView的一個IList,但你在控制器上期待一個PSM_StationBPData。