插入Asp.Net Mvc失败

时间:2013-06-21 08:39:20

标签: asp.net-mvc asp.net-mvc-3 model-view-controller asp.net-mvc-4

在我的asp.net mvc项目中,表数据将使用Index Method显示在网格视图中。     执行插入后,它将使用RedirectToAction重定向到Index。但是第一次,新行被添加到网格中。第二次尝试时,无法插入。     但是如果我再次使用浏览器重新加载页面,那么第一次只会进行插入。请帮我解决这个问题。

当我尝试调试时,“自最后一步以来该过程已经发生了变化”。因此,第一次调试期间的值也将在第二次插入时进行,这会破坏操作。给解决方案..

public ActionResult Index()
    {
        X_DEVEntities Entity = new X_DEVEntities();
        var outPut=Entity.Model.ToList();
        return View(outPut);
    }

    public ActionResult Insert(Model modelData)
    {
        X_DEVEntities Entity = new X_DEVEntities();
        modelData.create_user_id = "ty";
        modelData.last_mod_dtm = DateTime.Now;
        modelData.last_mod_user_id = "gdf";            
        Entity.Model.Add(modelData);            
        Entity.SaveChanges();
        return RedirectToAction("Index");           

    }

1 个答案:

答案 0 :(得分:3)

在第二次插入时,您会收到错误,因为根据您发布的Insert方法,在每次插入时,您将拥有相同的create_user_idlast_mod_user_id。 我猜它应该是这样的

public ActionResult Insert(Model modelData)
    {
        X_DEVEntities Entity = new X_DEVEntities();//try not to do this in your Insert method, rather have a constructer where you place this instantiation.
        Entity.yourTableName.UserId=modelData.create_user_id;//(UserId should be the field where you want to place the username you get from the view)
        modelData.last_mod_dtm = DateTime.Now;
        Entity.yourTableName.LastModUserId=modelData.last_mod_user_id;//again LastModUserId is the field where you want to save your modelData.last_mod_user_id in table.       
        Entity.Model.Add(modelData);            
        Entity.SaveChanges();
        return RedirectToAction("Index");           

    }