我有两个结构相同的表,每个表都有简单的Create New和Update表单。当更新和添加新行时,其中一个表工作正常...另一个表适用于更新,但在创建新行时无法使其超过ModelState.IsValid。
我收到一条错误消息,指出必须包含“ID”字段,即使这是一个自动递增的主键。我也试过提交一个空值,但这也不起作用。
据我所知,我的两个主键都以相同的方式设置,并且它们都使用LINQ to Entities模型。
[HttpPost]
public ActionResult CreateProduct(Product product)
{
if (ModelState.IsValid)
{
productrepository.Add(product);
productrepository.Save();
return RedirectToAction("ProductList");
}
return View();
}
有什么建议吗?
谢谢!
答案 0 :(得分:2)
使用绑定属性排除ID:
[HttpPost]
public ActionResult Create([Bind(Exclude="ID")]CompanyAddress companyAddress)
{
if (ModelState.IsValid)
答案 1 :(得分:0)
我将自动递增列名称从“ID”更改为“AutoID”,现在它似乎可以正常工作。
这是我在两张桌子之间找到的唯一区别,所以我猜测我的模型需要更新,或者使用“ID”暗示了一些无意的事情。
我仍然不确定为什么它不起作用,我很高兴我得到它的工作!