2017-05-11 1 views
1

J'ai une vue principale qui contient une vue partielle. J'ai HandleError qui par chance d'erreur je redirige vers une autre action qui retourne une autre vue. le problème est que lorsque j'ai une erreur dans la vue partielle seule la vue partielle a changé. que puis-je faire? le contrôleur:HandleError vue partielle rediriger vers l'action modifier uniquement la vue partielle

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 }); 
} 

J'ai besoin que tout le point de vue change, la partie et le principal.

+0

Voulez-vous dire que vous voyez une vue partielle au lieu d'une vue entière lorsque vous obtenez une erreur en vue partielle? – User3250

+1

Je veux dire que, par erreur, je veux que toute la vue va changer et que seule la vue partielle a changé – rikush

Répondre

0

Comme vous l'avez dit en cas d'erreur vue partielle seulement changé, vous pouvez essayer ci-dessous travail autour de:

OnException Redirect à l'action intermédiaire

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 }); 
} 

Créer partielle sur _RedirectToError.cshtml avec le code ci-dessous dans Dossier de connexion

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

Dans contrôleur Démarrer

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

Une fois RedirectOnError vous serez redirigés exécute à la connexion avec une vue complète.