在 asp.net mvc 中返回错误的最佳做法是什么

what is the best practice for returning a error in asp.net mvc

这是我的操作方法

var model= db.PageData.FirstOrDefault();
if (model==null)
{
    //return Error
}

reutrn View(model);

返回此错误的最佳做法是什么?以一种用户友好的方式,并且在它发生时我可以识别这个错误。

Throw a 500 Error:

return new HttpStatusCodeResult(500);

然后处理 web.config 中的 500 个错误。

http://benfoster.io/blog/aspnet-mvc-custom-error-pages

我会创建一个错误视图,然后在您预期会出现错误时执行类似的操作:

if(model == null)
{
    ViewBag.Error = "Your x is not present, please try again later or contact xxx";
    return View("Error");
}

在您的错误视图中,然后检查 ViewBag.Error 是否存在。 (错误视图应该在共享视图中)。

请注意,我只会在您排除它发生时才这样做,然后您可以通知用户他们做错了什么。例如编辑某些内容,您可以 return 他们查看此视图​​并向他们提供更多有关他们做错了什么的信息。

if(model == null)
{
    TempData["Error"] = "Your x is not present, please try again later or contact 

    return View();
}

在您的 cshtml 页面上您可以检查临时数据是否包含 "Error entry",您可以显示您的用户详细信息。

@if (TempData["Error"] != null)
{
    <div class="error">
    @TempData["Error"].ToString
    </div>
}

MVC 中的全局错误处理

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Error(object sender, EventArgs e)
    {
        Exception exception = Server.GetLastError();
        Server.ClearError();
        Response.Redirect("/Home/Error");
    }
}

see here 用于 asp.net mvc

中的错误处理