我创建了MVC应用程序数据库 - 首先使用数据库生成的ID字段。由于ID由数据库生成,因此在模型中,我将'StoreGeneratedPattern'属性设置为'Identity'。MVC ModelState错误“ID字段是必需的”,尽管数据库生成ID
但是,当我提交'创建'表单时,仍然出现ModelState错误“ID字段是必需的”。
我试过重新启动解决方案,清理它,重新构建它。我知道我以前有过这个问题,所以如果我弄明白了,我会在这里发布答案,以便将来我可以找到答案。
我创建了MVC应用程序数据库 - 首先使用数据库生成的ID字段。由于ID由数据库生成,因此在模型中,我将'StoreGeneratedPattern'属性设置为'Identity'。MVC ModelState错误“ID字段是必需的”,尽管数据库生成ID
但是,当我提交'创建'表单时,仍然出现ModelState错误“ID字段是必需的”。
我试过重新启动解决方案,清理它,重新构建它。我知道我以前有过这个问题,所以如果我弄明白了,我会在这里发布答案,以便将来我可以找到答案。
我在'创建'视图中包含了一个@Html.HiddenFor(model => model.ID)
。
因此,虽然应用程序会很乐意接受没有ID,但它不想接受空作为ID。
我刚刚删除了@ Html.HiddenFor,它工作。
P.S. '编辑'视图需要@Html.HiddenFor(model => model.ID)
来记住该ID是什么。
对于编辑视图,您需要拥有该ID才能更新相应的行。
如果您删除@ Html.HiddenFor(model => model.ID)=>每当您尝试编辑表单时,系统将始终生成新行。
你可以按照下面的代码,以便重复使用相同的看法两个创建/编辑
if (model != null)
{
@Html.HiddenFor(model => model.ID)
}
=>当您尝试创建一个表单 - 模式将是最初空,因此隐藏字段不会被执行。
=>当您尝试编辑隐藏的字段存储您的ID。