【问题标题】:Insertion on Asp.Net Mvc Failed在 Asp.Net Mvc 上插入失败
【发布时间】:2013-06-21 08:39:20
【问题描述】:

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

当我尝试调试时,出现“自上一步以来进程已更改”。因此,第一次调试期间的值也会在第二次插入时中断操作。请给出解决方案..

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");           

    }

【问题讨论】:

  • 何时插入数据?点击任何按钮?
  • 是的,我正在使用剑道 ui。在那个 Add New Item 上,我进行插入。
  • “无法插入”是什么意思?
  • 在第二次插入时,它会尝试插入我们在第一次插入时尝试的值。所以它显示值的错误已经存在......

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


【解决方案1】:

在第二次插入时,您会遇到错误,因为根据您发布的插入方法,在每次插入时,您将拥有相同的 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");           

    }

【讨论】:

  • 当然。您正在尝试使用相同的主键进行第二次插入
  • 当我尝试调试时,自上一步发生以来,进程已更改。因此,第一次调试期间的值也会在第二次插入时中断操作。请给出解决方案..
  • 对我来说,通常在这种情况下,当我从解决方案资源管理器中刷新数据库或一些相关文件夹、文件时,它就会起作用。或者关闭视觉工作室,然后重试。刷新应用程序,看看它是否有效。
  • 我在我的项目中使用实体框架。请在@model IEnumerable 下方查看我的视图标题代码
  • 仅仅给出你使用的型号真的没有任何意义。尝试使用模型、控制器和视图再次提出新问题,也可能是您创建表的上下文文件。这将帮助您获得更好的答案。另外,如果它在特定情况下有帮助,请接受答案。
猜你喜欢
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 2020-01-26
相关资源
最近更新 更多