2

私はMVC3とEF4.1を学んでいます。私は現在、リーンデータクラスを生成するために、新しいTT4ジェネレーターを使用してデータベースファーストEFを実験しています。CRUDコントローラーを生成しましたが、ビューにDB制約メッセージを表示するのに最適な方法の問題に遭遇しました。

私のコードはこれまでのところ:

    [HttpPost]
    public ActionResult Delete(Guid id, aspnet_Users User)
    {
        string errorMessage = string.Empty;
        try
        {
            // TODO: Add delete logic here
            db.Entry(User).State = System.Data.EntityState.Deleted;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        catch(Exception err)
        {
            return Content(err.InnerException.StackTrace);
            //return View();
        }
    }

どんな助けでも大歓迎です。

エド

4

1 に答える 1

4

最も簡単な方法の1つは、例外メッセージを含むモデルエラーを追加することです。これは基本的に、制約違反を検証エラーとして扱います。ただし、おそらくユーザー向けにメッセージをカスタマイズする必要があります。

[HttpPost]
public ActionResult Delete(Guid id, aspnet_Users User)
{
    try
    {
        // TODO: Add delete logic here
        db.Entry(User).State = System.Data.EntityState.Deleted;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    catch(Exception err)
    {
        ModelState.AddModelError(String.Empty, err.Message);
        return View(User);
    }
}
于 2012-04-27T14:44:21.237 に答える