我无法弄清楚为什么我的模型没有被填充。发布的所有数据都在Request.Form
,但该模型实际上是null
。
根据this answer on model with collection not populating on postback
换句话说,(...)如果缺少任何必填字段,或者值是 以这样的方式提交它们无法转换为必填字段的类型,那么整个对象将保留为null
我已经更改了几种值类型,但我无法使其工作。
这是我的模特:
public class AddModel
{
//Get properties
public Vehicle vehicle;
//Post properties
[Required(ErrorMessage = "Please enter a start date")]
public DateTime StartDate;
public int? StatusCode;
public SelectList StatusCodes()
{
...
}
}
你能想到它为什么没有被填充吗?
答案 0 :(得分:6)
制作AddModel
成员Properties
- 向字段添加get; set;
可以解决您的问题
答案 1 :(得分:2)
根据@ archil的回复,您应该创建公共变量属性。虽然这可能适用于类型,但只要增加复杂性,就会遇到问题。当然对于类,但也可以为可空类型。
模型绑定器使用反射将表单字段解析为模型,并且反射在属性上对公共变量的工作方式不同 - 在这些模型的情况下,the differences will likely be causing the failure here。
希望有所帮助 - 并且提示@archil正确回答这个问题(可能),比我早得多!