0

我创建了MVC应用程序数据库 - 首先使用数据库生成的ID字段。由于ID由数据库生成,因此在模型中,我将'StoreGeneratedPattern'属性设置为'Identity'。MVC ModelState错误“ID字段是必需的”,尽管数据库生成ID

但是,当我提交'创建'表单时,仍然出现ModelState错误“ID字段是必需的”。

我试过重新启动解决方案,清理它,重新构建它。我知道我以前有过这个问题,所以如果我弄明白了,我会在这里发布答案,以便将来我可以找到答案。

回答

0

我在'创建'视图中包含了一个@Html.HiddenFor(model => model.ID)

因此,虽然应用程序会很乐意接受没有ID,但它不想接受空作为ID。

我刚刚删除了@ Html.HiddenFor,它工作。

P.S. '编辑'视图需要@Html.HiddenFor(model => model.ID)来记住该ID是什么。

0

对于编辑视图,您需要拥有该ID才能更新相应的行。

如果您删除@ Html.HiddenFor(model => model.ID)=>每当您尝试编辑表单时,系统将始终生成新行。

你可以按照下面的代码,以便重复使用相同的看法两个创建/编辑

if (model != null) 

{ 

    @Html.HiddenFor(model => model.ID) 
} 

=>当您尝试创建一个表单 - 模式将是最初空,因此隐藏字段不会被执行。

=>当您尝试编辑隐藏的字段存储您的ID。

相关问题