具有嵌套列表的ASP.NET MVC DefaultModelBinder
发布时间:2020-05-28 07:56:59 所属栏目:asp.Net 来源:互联网
导读:我有一个视图,一个表表示员工的时间表.顶部的天数,项目落后,每天/项目交点包含两个正常小时和加班时间的值. 页面模型的(简化)类定义如下: public class TimesheetFormModel { public ListProject Projects; // other things...}public class Project { publi
|
我有一个视图,一个表表示员工的时间表.顶部的天数,项目落后,每天/项目交点包含两个正常小时和加班时间的值. 页面模型的(简化)类定义如下: public class TimesheetFormModel {
public List<Project> Projects;
// other things...
}
public class Project {
public string Name;
public List<WorkUnit> WorkUnits;
}
public class WorkUnit {
public DateTime Date;
public decimal RegularHours;
public decimal OvertimeHours;
}
页面上的表单元素命名如下,以试图获取DefaultModelBinder. model.Projects[0].Name // "New Project" model.Projects[0].WorkUnits[0].Date // "5/23/2009 12:00:00 AM" model.Projects[0].WorkUnits[0].RegularHours // 0 model.Projects[0].WorkUnits[0].OvertimeHours // 0 model.Projects[0].WorkUnits[1].Date // "5/24/2009 12:00:00 AM" model.Projects[0].WorkUnits[1].RegularHours // 0 model.Projects[0].WorkUnits[1].OvertimeHours // 0 model.Projects[0].WorkUnits[2].Date // "5/25/2009 12:00:00 AM" model.Projects[0].WorkUnits[2].RegularHours // 0 model.Projects[0].WorkUnits[2].OvertimeHours // 0 // etc. 当提交视图时,模型参数未被完全填充. model.Projects包含项目,但Project的WorkUnits字段为空. DefaultModelBinder是否支持嵌套集合,就像我想要做的那样?如果没有,我该怎么办? 解决方法我最终弄清楚DefaultModelBinder为什么不在WorkUnit的属性上拾取:因为它们不是属性,它们是字段. DefaultModelBinder仅适用于属性.将WorkUnit和Project的类定义更改为使用字段,一切都会点击:public class Project {
public IList<WorkUnit> WorkUnits { get; set; }
public string Name { get; set; }
}
public class WorkUnit {
public DateTime Date { get; set; }
public decimal RegularHours { get; set; }
public decimal OvertimeHours { get; set; }
}
(注意:原始问题中的源代码将Project.Name定义为一个字段,在我的实际代码中它是一个属性,这就是为什么“项目”列表被填充,但是WorkUnits不是.) (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – MVC 2 vs MVC 3自定义验证属性使用DataAnno
- asp.net-mvc – 当前上下文中不存在名称“ViewBag” – 当在
- asp.net-mvc – 我需要在我的所有页面上使用`[ValidateAnti
- 下载ASP.NET MVC C#中字节数组列表中包含的多个文件
- asp.net-mvc-3 – 在ASP.NET MVC 3中应用数据注释时,如何使
- asp.net-mvc-3 – 从ASP的Ajax.ActionLink获取JSonResult
- asp.net-mvc-5 – 在GenerateUserIdentityAsync方法的aspne
- asp.net-mvc – AutoMapper.Mapper不包含CreateMap的定义
- Asp.NET 生成静态页面并分页的代码
- asp.net-web-api – 从响应中删除标题
推荐文章
站长推荐
- asp.net – jquery下拉选择器AutoPostback
- asp.net-mvc – 如何使用jquery处理JSON?
- asp.net-mvc – 子文件夹中的控制器
- asp.net – 我们可以在网页中使用多种形式吗?
- 如何在ASP.NET MVC控制器(ActionResult)中更改返
- 用于Asp.Net应用程序的SSO的最佳方法,从具有多个
- asp.net-mvc-4 – 没有为此对象定义的无参数构造
- asp.net-mvc-4 – 如何通过ASP.NET MVC中的Simpl
- asp.net – 形式auth超时和会话超时的差异
- asp.net-mvc – MVC数据注释范围验证无法正常工作
热点阅读
