当"Delete"遇到数据库约束时显示数据库错误消息的最佳方法



我正在学习MVC3和EF4.1。我目前正在使用新的 TT4 生成器试验数据库优先 EF 以生成精益数据类。我生成了一个 CRUD 控制器,并遇到了如何在视图中最好地显示数据库约束消息的问题。

到目前为止,我的代码是:

    [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();
        }
    }

任何帮助非常感谢。

艾德

最简单的方法之一是添加带有异常消息的模型错误。这实质上将约束冲突视为验证错误。但是,您可能应该为用户自定义消息。

[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);
    }
}

最新更新