我在helper类中有一个try-catch段。如果try catch段抛出错误,我想返回一个视图。现在我有:
try
{
//some code
}
catch (Exception ex)
{
return View("~/Views/Home/Index.cshtml");
}
答案 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");
}