将表单数据提交到多个表。的NullReferenceException

时间:2017-01-15 00:12:39

标签: asp.net-mvc

嘿,有人可以帮我提交这份表格吗?这是我制作的ViewModel。这是我尝试拿起MVC的第三天,所以我还是新手。

public class EmployeeAllData
{
    public Employees Employees { get; set; }
    public PermissionModel PermissionModel { get; set; }

}

这是表单提交的控制器。我从许可表开始,我没有运气。它一直给我这个错误:NullReferenceException未被用户代码处理。我试过硬编码值,它更新了权限表就好了。我无法找出为什么我没有从员工那里得到价值。

    [HttpPost]
    public ActionResult Create(EmployeeAllData viewModel)
    {

        var permission = new PermissionModel
        {
            EmployeesId = Convert.ToByte(viewModel.Employees.Id),
            TimeStamp = DateTime.Now,
            PermissionVal = viewModel.Employees.Permissions
        };

        _context.PermissionModels.Add(permission);
        _context.SaveChanges();


        return RedirectToAction("EmployeeList", "Employee");
    }

有什么想法吗?

更新 我认为我的问题出在我的ViewModel上。下面的代码运行正常,并在数据库中创建一个新员工。

    public ActionResult Create(Employees employees)
    {
        _context.Employeeses.Add(employees);
        _context.SaveChanges();
        return RedirectToAction("EmployeeList", "Employee");
    }

1 个答案:

答案 0 :(得分:0)

我不需要使用viewModel。这是我现在可以使用的最终代码。

    [HttpPost]
    public ActionResult Create(Employees employees)
    {


        _context.Employeeses.Add(employees);
        _context.SaveChanges();

        var permission = new PermissionModel()
        {
            EmployeesId = Convert.ToByte(employees.Id),
            TimeStamp = DateTime.Now,
            PermissionVal = employees.Permissions
        };

        _context.PermissionModels.Add(permission);
        _context.SaveChanges();
        return RedirectToAction("EmployeeList", "Employee");
    }