错误状态:'内部服务器错误'。错误代码:500 - jqGrid ASP.NET MVC

时间:2012-07-31 15:42:09

标签: asp.net-mvc entity-framework jqgrid jqgrid-asp.net

我使用jqgrid Modal表单来添加和编辑表的行。我正在使用Entity框架和Database First方法从现有数据库创建模型。当我添加或编辑行时,正确添加或编辑行并在数据库中正确保存行,当我在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)
{
}
}

1 个答案:

答案 0 :(得分:1)

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

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

注意:我能够使用事件查看器发现ArgumentNullException。在运行中键入事件查看器并转到Windows日志 - 应用程序。您将能够看到您的应用程序的所有警告。打开警告,转到常规选项卡,您将能够看到抛出的异常类型。希望这可以帮助有需要的人。