Asp.net mvc 2 ModelState.IsValid返回FALSE,因为未包含自动增量字段

Asp.net mvc 2 ModelState.IsValid返回FALSE,因为未包含自动增量字段,asp.net-mvc-2,linq-to-entities,Asp.net Mvc 2,Linq To Entities,我有两个结构相同的表,每个表都有简单的createnew和updateforms。当更新和添加新行时,其中一个表工作正常。。。另一个表可以很好地进行更新,但在创建新行时无法使其超过ModelState.IsValid 我收到一条错误消息,说必须包含“ID”字段,即使这是一个自动递增的主键。我还尝试提交一个空值,但这也不起作用 据我所知,我的两个主键都是以相同的方式设置的,并且都使用LINQ到实体模型 [HttpPost] public ActionResult CreateProduc

我有两个结构相同的表,每个表都有简单的createnew和updateforms。当更新和添加新行时,其中一个表工作正常。。。另一个表可以很好地进行更新,但在创建新行时无法使其超过ModelState.IsValid

我收到一条错误消息,说必须包含“ID”字段,即使这是一个自动递增的主键。我还尝试提交一个空值,但这也不起作用

据我所知,我的两个主键都是以相同的方式设置的,并且都使用LINQ到实体模型

 [HttpPost]
    public ActionResult CreateProduct(Product product)
    {
        if (ModelState.IsValid)
        {
            productrepository.Add(product);
            productrepository.Save();

            return RedirectToAction("ProductList");
        }
        return View();
    }
有什么建议吗


谢谢

我将我的自动递增列名从'ID'更改为'AutoID',现在它似乎可以工作了

这是我在两个表之间发现的唯一区别,所以我猜要么我的模型需要更新,要么使用“ID”意味着无意中的事情


我仍然不知道为什么它不起作用,我只是很高兴它起作用了

我将我的自动递增列名从'ID'更改为'AutoID',现在它似乎可以工作了

这是我在两个表之间发现的唯一区别,所以我猜要么我的模型需要更新,要么使用“ID”意味着无意中的事情


我仍然不知道为什么它不起作用,我只是很高兴它起作用了

排除具有绑定属性的ID:

[HttpPost]
public ActionResult Create([Bind(Exclude="ID")]CompanyAddress companyAddress)
{
    if (ModelState.IsValid)

排除具有绑定属性的ID:

[HttpPost]
public ActionResult Create([Bind(Exclude="ID")]CompanyAddress companyAddress)
{
    if (ModelState.IsValid)

您可以显示您在产品的Id列上放置了什么属性吗?为什么不使用视图模型?您可以显示您在产品的Id列上放置了什么属性吗?为什么不使用视图模型?这也帮助了我。谢谢我也帮了忙。谢谢