1

jqgrid Modal フォームを使用して、テーブルの行を追加および編集しています。エンティティ フレームワークとデータベース ファーストのアプローチを使用して、既存のデータベースからモデルを作成しています。行を追加または編集すると、行が正しく追加または編集され、データベースに適切に保存されます。追加または編集された行を取得して jqGrid で表示すると、正しく表示されます。ただし、唯一の問題は、追加または編集すると、エラー Status: 'Internal Server Error' がスローされることです。エラー コード:モーダル フォームの 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 アクションにリダイレクトしていました。この Index アクション内のコードが null の値を返そうとしたため、ArgumentNullException がスローされ、YSOD が表示されました。

注: イベント ビューアーで ArgumentNullException を見つけることができました。[実行] に「イベント ビューアー」と入力し、[Windows ログに移動 - アプリケーション] に移動します。アプリケーションのすべての警告を確認できます。警告を開くと、[一般] タブに移動すると、スローされる例外の種類を確認できます。これが困っている人に役立つことを願っています。

于 2012-08-01T20:49:42.110 に答える