asp.net 无法使用控制器[EF Core]将任何数据插入数据库

siv3szwd  于 2023-01-27  发布在  .NET
关注(0)|答案(1)|浏览(160)

我正在我的大学项目,使用两个表的数据库:RoleUserUsers.RoleId是引用Role.Id的外键,我使用脚手架模板“MVC Model with views using Entity Framework”为每个表/模型类生成了Controller,因此RolesControler.csUsersControler.cs几乎相同。
我可以创建,编辑或删除角色使用不同的视图,可以看到here。正如你所看到的,新的角色is inserted into the database
虽然尝试使用为UsersController.cs指定的视图做确切的事情,但我不能添加或修改用户。我填写了所有输入,但提交不会给予任何结果,页面不刷新(没有重定向到index.cshtml),没有数据被添加到数据库,只是什么也没发生,I can click "Create" button forever.我尝试在SQL Server对象资源管理器中使用SQL查询手动添加用户,它们出现在列表中。有趣的是,我可以使用Delete方法删除它们。重定向到主页并从数据库中删除记录。
此外,在尝试创建新用户时,我只能选择已经存在的角色(这是预期的),但这表明User.RoleIdRole.Id之间的引用已正确完成。
以下是UsersControler.csCreate方法的代码:

[HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Create([Bind("Id,Name,Surname,DateOfBirth,Login,RoleId,IsDeleted")] User user)
        {
            if (ModelState.IsValid)
            {
                _context.Add(user);
                await _context.SaveChangesAsync();
                return RedirectToAction(nameof(Index));
            }
            ViewData["RoleId"] = new SelectList(_context.Roles, "Id", "Id", user.RoleId);
            return View(user);
        }

我真的不知道为什么Role表/模型一切正常,但当涉及到User时,我只能删除数据库中已经存在的记录。

**EDIT:**我尝试使用无效的日期(年份32121)和validation error occurs插入新用户,对我来说,这表示提交按钮会React并验证输入数据,但如果有效,它不会将记录插入数据库,也不会重定向到索引页。

bqjvbblv

bqjvbblv1#

我可以问一下RoleUser的模型类是什么样的吗?我怀疑你们的数据类型不匹配。我有一个和你们几乎相似的问题,只是我甚至不能输入外键

相关问题