每次运行时,我的卡车 Controller 中都有这段代码。
我的模型总是空的。
[HttpPost]
public ActionResult AddTruck(TruckDataModel model)
{
var newTruck = new truck()
{
registration_no = model.reg_no,
make = model.make,
model = model.model,
engine_no = model.engine_no,
chassis_no = model.chassis_no,
driver_name = model.driver_name,
driver_no = model.driver_no,
current_run = model.current_run,
};
if (ModelState.IsValid)
{
db.trucks.Add(newTruck);
db.SaveChanges();
return RedirectToAction("TruckList","Trucks");
}
return View(model);
这是我的模型
public class TruckDataModel
{
[Required(ErrorMessage = "Registration No. required", AllowEmptyStrings = false)]
[Display(Name = "Registration No.")]
public string reg_no { get; set; }
[Required(ErrorMessage = "Make required", AllowEmptyStrings = false)]
[Display(Name = "Make")]
public string make { get; set; }
[Required(ErrorMessage = "Model required", AllowEmptyStrings = false)]
[Display(Name = "Model")]
public string model { get; set; }
[Required(ErrorMessage = "Engine No. required", AllowEmptyStrings = false)]
[Display(Name = "Engine No.")]
public string engine_no { get; set; }
[Required(ErrorMessage = "Chassis No. required", AllowEmptyStrings = false)]
[Display(Name = "Chassis No.")]
public string chassis_no { get; set; }
[Required(ErrorMessage = "Driver Name required", AllowEmptyStrings = false)]
[Display(Name = "Driver Name")]
public string driver_name { get; set; }
[Required(ErrorMessage = "Current Run required", AllowEmptyStrings = false)]
[Display(Name = "Current Run")]
public int current_run { get; set; }
[Required(ErrorMessage = "Driver no. required", AllowEmptyStrings = false)]
[Display(Name = "Driver No.")]
public int driver_no { get; set; }
}//just for allow to edit
我总是会出现 NullReference 异常,当我设置断点时,所有模型都为空。
我的 CreateUser 操作中有准确的代码,但它工作得很好吗? 非常需要帮助!
最佳答案
您的 TruckDataModel
模型有一个名为 model
的属性,您的 POST 方法参数也名为 model
。你需要改变一个或另一个,比如说
public ActionResult AddTruck(TruckDataModel truck)
{
....
}
原因是 DefautModelBinder
首先初始化了一个 TruckDataModel
的实例。然后它读取表单数据,看到 model
的名称/值对,然后尝试将您的参数设置为其值(比如 model="Ford"
),但失败了因此模型变为 null
关于c# - MVC 4 Entity Framework 模型为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32241387/