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