在我的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");
}
答案 0 :(得分:3)
在第二次插入时,您会收到错误,因为根据您发布的Insert方法,在每次插入时,您将拥有相同的create_user_id
和last_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");
}