从Mvc 5中的助手类返回视图

时间:2016-04-12 07:39:00

标签: c# asp.net-mvc

我在helper类中有一个try-catch段。如果try catch段抛出错误,我想返回一个视图。现在我有:

try
{
    //some code
}
catch (Exception ex)
{
    return View("~/Views/Home/Index.cshtml");
}

2 个答案:

答案 0 :(得分:2)

有两种方式:
1.(重新)在助手中抛出异常+向控制器添加异常处理,或者
2.在帮助程序中捕获异常,例如返回bool表示成功/失败+在控制器中响应此值。

第一种方法:

<强> MyController.cs

public ActionResult Index()
{
    try
    {
        MyHelper.SomeMethod(); // This method is allowed to throw
        return View(); // No view name specified means this renders "Index"
    }
    catch (Exception ex)
    {
        return View("Error");
    }
}

第二种方法:

<强> MyController.cs

public ActionResult Index()
{
    bool succeeded = MyHelper.SomeFunction(); // This method should never throw
    if (succeeded)
        return View(); // No view name specified means this renders "Index"
    else
        return View("Error");
}

此外,尽量避免在View中调用助手,除非您的View可以处理所有结果。当View已经执行时,您无法简单地切换&#39;另一种观点认为,这将是财务主任的任务和责任。

答案 1 :(得分:0)

试试这个:

try
{

}
catch (System.Exception)
{
    return RedirectToAction("Index", "Home");
}