MVC ModelState错误"The ID field is required"虽然数据库生成了一个ID
MVC ModelState error "The ID field is required" although the database generates an ID
我首先使用数据库生成的 ID 字段创建了 MVC 应用程序数据库。
由于ID是由数据库生成的,在模型中我将'StoreGeneratedPattern' 属性设置为'Identity'。
但是,当我提交 'create' 表单时,我仍然收到 ModelState 错误 "The ID field is required"。
我试过重新启动解决方案,清理它,重新构建它。我知道我以前遇到过这个问题,所以如果我弄明白了,我会post在这里给出答案,以便以后我能找到它。
我在 'create' 视图中包含了一个 @Html.HiddenFor(model => model.ID)
。
因此,尽管应用程序很乐意接受无 ID,但它不想接受 null 作为 ID。
我刚刚删除了@Html.HiddenFor,它起作用了。
P.S。 'edit' 视图需要 @Html.HiddenFor(model => model.ID)
来记住 ID 是什么。
对于编辑视图,您需要有 ID 才能更新相应的行。
如果您删除@Html.HiddenFor(model => model.ID) => 每当您尝试编辑表单时,系统总是会生成新行。
您可以按照以下代码为两者重复使用相同的视图 create/Edit
if (model != null)
{
@Html.HiddenFor(model => model.ID)
}
=> 当您尝试创建表单时 - 模型最初将为空,因此不会执行隐藏字段。
=> 当您尝试编辑隐藏字段时存储您的 ID。
我首先使用数据库生成的 ID 字段创建了 MVC 应用程序数据库。
由于ID是由数据库生成的,在模型中我将'StoreGeneratedPattern' 属性设置为'Identity'。
但是,当我提交 'create' 表单时,我仍然收到 ModelState 错误 "The ID field is required"。
我试过重新启动解决方案,清理它,重新构建它。我知道我以前遇到过这个问题,所以如果我弄明白了,我会post在这里给出答案,以便以后我能找到它。
我在 'create' 视图中包含了一个 @Html.HiddenFor(model => model.ID)
。
因此,尽管应用程序很乐意接受无 ID,但它不想接受 null 作为 ID。
我刚刚删除了@Html.HiddenFor,它起作用了。
P.S。 'edit' 视图需要 @Html.HiddenFor(model => model.ID)
来记住 ID 是什么。
对于编辑视图,您需要有 ID 才能更新相应的行。
如果您删除@Html.HiddenFor(model => model.ID) => 每当您尝试编辑表单时,系统总是会生成新行。
您可以按照以下代码为两者重复使用相同的视图 create/Edit
if (model != null)
{
@Html.HiddenFor(model => model.ID)
}
=> 当您尝试创建表单时 - 模型最初将为空,因此不会执行隐藏字段。
=> 当您尝试编辑隐藏字段时存储您的 ID。