HandleError局部视图重定向到操作仅更改局部视图

时间:2017-05-11 08:46:04

标签: asp.net-mvc view

我的主视图包含部分视图。 我有HandleError,错误的机会我重定向到返回其他视图的其他操作。 问题是,当我在局部视图中有错误时,只有局部视图发生了变化。 我能做什么? 控制器:

protected override void OnException(ExceptionContext filterContext)
{
    if (filterContext != null)
    {
        Exception e = filterContext.Exception;
        Log.Error(e);
    }
    RedirectToAction("Login", "Start", new { authorityId = 1, TopUnit = "RRRRR", unitId = 1, SubUnitId = 1 });
}

我需要所有视图都会改变,部分和主要。

1 个答案:

答案 0 :(得分:0)

正如你所说的错误部分视图只是改变了,你可以尝试下面的工作:

OnException重定向到中间操作

protected override void OnException(ExceptionContext filterContext)
{
    if (filterContext != null)
    {
        Exception e = filterContext.Exception;
        Log.Error(e);
    }

    RedirectToAction("RedirectOnError", "Start", new { authorityId = 1, TopUnit = "RRRRR", unitId = 1, SubUnitId = 1 });
}

使用以下代码在登录文件夹中创建部分视图_RedirectToError.cshtml

 <script>
   window.location = '@Url.Action("Login", "Start",new { authorityId = 1, TopUnit = "RRRRR", unitId = 1, SubUnitId = 1 })';
</script>

在启动控制器中

public ActionResult RedirectOnError(){
   return PartialView("_RedirectToError");
}

执行RedirectOnError后,您将被重定向到具有完整视图的Login。