2016-10-16 118 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。