我有一个模型的编辑/创建页面。当用户提交表单时,它将被添加或更新到数据库。
在那之后,我想将它们重定向回相同的表格,同时保留相同的数据,清除id以及其他一些值。
public ActionResult AddProduct(MyModel myModel)
{
// Save
if (myModel.AuditID != 0) {
Update(myModel);
} else {
Add(myModel);
}
// Set some values so it's seen as new, as well as some
// other values that need to be cleared
myModel.ID = 0;
myModel.Product = "";
// Edit/Create page
ActionResult ret = EditCreateKnownRow(myModel);
return ret;
}
我希望它被视为一个全新的实体,但我得到一个InvalidOperationException
这些细节:
The property 'ID' is part of the object's key information and cannot be modified.
我得到的实体框架不想处理可能存在的外键约束,但这与我正在寻找的内容无关。有没有办法将其视为新实体而无需创建复制构造函数?
感谢。
会对ModelState做些什么帮助吗?我在修改密钥之前尝试了ModelState.Remove(myModel.ID.ToString());
和ModelState.Clear();
,但它没有用。