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

时间:2015-04-27 12:48:40

标签: c# asp.net-mvc-4 error-handling

这是我的行动方法

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

reutrn View(model);

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

4 个答案:

答案 0 :(得分:6)

Throw a 500 Error

return new HttpStatusCodeResult(500);

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

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

答案 1 :(得分:1)

我会创建一个错误视图,如果您预计会出现错误,请执行以下操作:

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

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

注意我只会在您发生这种情况时执行此操作,然后您可以告知用户他们做错了什么。例如编辑某些内容,您可以将这些视图返回给他们,并向他们提供更多信息以了解他们做错了什么。

答案 2 :(得分:1)

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

中出错

答案 3 :(得分:-1)

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

    return View();
}

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

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