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" .. />