2017-05-11 20 views
1

我有包含局部视图的主视图。 我有HandleError错误的机会,我重定向到其他行动,返回其他视图。 问题是,当我在局部视图中出现错误时,只有局部视图发生了变化。 我该怎么办? 控制器: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 }); 
} 

我需要所有的看法会改变,部分和主。

+0

您的意思是说,当您在局部视图中出现错误时,您会看到局部视图而不是整个视图? – User3250

+1

我的意思是说,在错误中,我希望所有的视图都会改变,只有部分视图改变 – rikush

回答

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执行,你会被重定向一个完整的视图来登录。