1

我正在使用 jqgrid 模态表单来添加和编辑表格的行。我正在使用实体框架和数据库优先方法从现有数据库创建模型。当我添加或编辑行时,行被正确添加或编辑并正确保存在数据库中,当我检索添加或编辑的行并在 jqGrid 中查看时,它们会正确显示。但是,唯一的问题是当我添加或编辑时,它会抛出错误状态:“内部服务器错误”。错误代码:模态表单中的 500

任何人都知道为什么会发生这种情况?由于添加或编辑正常进行,有没有办法可以忽略此错误消息并使其根本不显示?

任何帮助是极大的赞赏!

编辑:

public ActionResult Create(string oper, string id, Employee employee)
{
try
{
 if (oper == "add")
 {
   if (ModelState.IsValid)
   {
    db.Employees.Add(employee);
    db.SaveChanges();
    return RedirectToAction("Index");   
   }
 }
 if (oper == "edit")
 {
  if (ModelState.IsValid)
  {
    db.Entry(employee).State = EntityState.Modified;
    db.SaveChanges();
    return RedirectToAction("Index");
  }
 }
  if (oper == "del") 
  {
    Employee employees = db.Employees.Find(Int32.Parse(id));
    db.Employees.Remove(employees);
    db.SaveChanges();
    return RedirectToAction("Index");
  }
}
catch (InvalidOperationException ex)
{
}
catch (Exception e)
{
}
}
4

1 回答 1

2

感谢大家的所有建议。我弄清楚我做错了什么。实际上,问题不在于数据格式不正确或代码未命中,问题在于我将更改保存到数据库后,这就是为什么它没有被异常块捕获。

将更改保存为 [db.SaveChanges()] 后,我将重定向到索引操作。这就是问题所在。我正在重定向到错误的索引操作。此 Index 操作中的代码尝试返回一些为 null 的值,因此引发 ArgumentNullException 并显示 YSOD。

注意:我能够使用事件查看器发现 ArgumentNullException。在 Run 和 Goto Windows Logs - Application 中键入 Event Viewer。您将能够看到您的应用程序的所有警告。打开警告,转到常规选项卡,您将能够看到抛出了什么样的异常。希望这可以帮助有需要的人。

于 2012-08-01T20:49:42.110 回答