C# 列表<;VIEWMODEL>;视图中的对象在控制器mvc.net中返回null

C# 列表<;VIEWMODEL>;视图中的对象在控制器mvc.net中返回null,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个类对象列表,它与视图绑定如下 @model List<Rep.Models.ContactReportSettingViewModel> var accountArr = Model.Select(x => new { x.AccountId, x.CarrierId, x.AccountNumber, x.CarrierName, x.ClientId, x.ContactId }).Distinct(); 但当我单击save时,它返回null或值,或者不使用类属性

我有一个类对象列表,它与视图绑定如下

@model List<Rep.Models.ContactReportSettingViewModel>
var accountArr = Model.Select(x => new { x.AccountId, x.CarrierId, x.AccountNumber, x.CarrierName, x.ClientId, x.ContactId }).Distinct();
但当我单击save时,它返回null或值,或者不使用类属性设置,我在控制器中访问它,如下所示:

public RESULT method(List<ContactReportSettingViewModel> model)
{ 
  model is null here
  // return View(model);            
}

然后,在model object中,我可以看到所有属性,但值没有设置为这些属性

遵循以下检查表

1) 确保在视图顶部添加了thing binding语句

@model List<ClassName>
@型号列表
2) 然后检查您是否提交到您提到的函数,并检查参数类型是否与绑定页面时提到的相同

如果您使用html表类型结构来显示列表项,那么您还需要将列表与每一行绑定。喜欢
对于单元格[0][0]使用循环绑定列表[0]。EmployeeId、单元格[0][1]使用循环绑定列表[0]。EmployeeName等用于所有列,然后是行。

您不能使用
foreach
循环为集合生成表单控件,因为生成的
name
属性与模型无关(并复制无效html的
id
属性)。您可以对视图中的
循环使用
,也可以对模型使用
编辑器或模板

注意:您需要删除Linq
。选择()
code并在控制器获取方法中进行过滤

在主视图中使用
for
循环(注意模型必须是
IList

然后在主视图中(注意模型可以是
IEnumerable


请发布您的所有代码,包括视图。其
公共操作结果方法(列表模型)
,但如果由于您的视图错误而未绑定,请发布您的代码。请确保您有
[HttpPost]
action method上的装饰您如何将模型与视图绑定?我是指视图顶部的确切语句?显示负责创建视图的操作/方法。是否向视图发送空模型。您必须实例化您的模型可能:public ActionResult Index(){var model=new yourModel();Return View(model);}我添加了这一点,因此我可以看到记录列表,但问题在于仅保存
public RESULT method(ContactReportSettingViewModel model)
{ 
  // return View(model);            
}
@model List<ClassName>
@model List<Rep.Models.ContactReportSettingViewModel>
@using (Html.BeginForm())
{
  @for (int i = 0; i < Model.Count; i++)
  {
    @Html.LabelFor(m => m[i].AccountNumber)
    @Html.TextBoxFor(m => m[i].AccountNumber)
    @Html.ValidationMessageFor(m => m[i].AccountNumber)
    .....
  }
  <input type="submit" .../>
}
@model Rep.Models.ContactReportSettingViewModel

@Html.LabelFor(m => m.AccountNumber)
@Html.TextBoxFor(m => m.AccountNumber)
@Html.ValidationMessageFor(m => m.AccountNumber)
  .....
@model IEnumerable<Rep.Models.ContactReportSettingViewModel>
@using (Html.BeginForm())
{
  @Html.EditorFor(m => m)
  <input type="submit" .../>
}
<input type="text" name="[0].AccountNumber" .. />
<input type="text" name="[1].AccountNumber" .. />