2013-04-18 2 views
0

J'ai une page Test.aspx qui contient dans le dossier partagé. Je n'ai pas de contrôleur partagé.ASP .Net MVC - Rediriger la page d'affichage du dossier partagé sans contrôleur partagé dans jquery

Dans ma page de vue, Quand je reçois des données de résultat comme Error de jquery $.ajax signifie que je veux rediriger de la page principale de la page Test.aspx.

Comment puis-je rediriger la page d'affichage sans contrôleur correspondant & également Comment puis-je y parvenir en utilisant jquery?

window.location.href = "/path/"; 

Est-il possible de rediriger la page de vue sans contrôleur ..

Répondre

1

Comment rediriger la page de vue sans contrôleur correspondant

Impossible et n'a pas de sens. Dans les vues ASP.NET MVC ne peut pas et ne doit pas être servi directement.

Vous commencez en déclarant une action de contrôleur qui renverra ce point de vue et à l'intérieur de votre AJAX que vous appelez indique simplement à elle:

window.location.href = "somecontroller/someaction"; 
+0

Merci pour votre réponse ... –

+0

Je doute, à partir du contrôleur, nous pouvons rediriger vers la page de vue (sans contrôleur) en utilisant le code de 'retourner (Voir » Test "); droite? –

+0

Non, cela ne redirige pas. C'est en train de rendre une vue. Il y a une très grande différence. Rediriger signifie effectuer une autre requête HTTP. Le rendu signifie que cette vue est exécutée sous la requête en cours. –

0

Vous ne pouvez pas demander directement Voir à partir d'une application MVC sans passer par un Manette. Il n'a jamais été conçu pour cela (et dans la plupart des cas l'empêche explicitement). Cela étant dit, il est possible de changer ce que View est retourné à partir de l'action d'un contrôleur, en fait le HandleErrorAttribute le fait par défaut. Contrairement à une application ASP.NET typique, qui vous redirige vers une page comme error.aspx lorsqu'une exception se produit, le HandleErrorAttribute prend un nom de vue et lorsqu'une erreur se produit, il renvoie cette vue. Cependant, il ne vous redirige pas vers la page que vous avez initialement demandée. Donc, si vous demandez une page pour voir les détails d'une personne (People/Details/123) et rencontrez une erreur, l'URL restera la même mais la vue retournée sera celle de l'affichage des erreurs. Gardez à l'esprit que l'attribut HandleErrorAttribute ne gérera pas les erreurs survenant en dehors de MVC. Les erreurs génériques IIS et ASP.NET ne seront donc pas gérées.

Si vous souhaitez rediriger vers une vue d'erreur en utilisant javascript, vous devez utiliser le HandleErrorAttribute. Si vous voulez avoir une page entière et pas seulement une vue, je vous recommande d'ajouter une action au Home Controller (ou même de créer un contrôleur appelé Errors) et d'en demander la page. Si vous n'aimez pas l'idée de demander une page en utilisant /Home/Error ou /Errors/Exception, vous pouvez toujours ajouter un nouvel itinéraire à l'application afin qu'il soit raccourci à/Erreur ou/Exception.

routes.MapRoute("ErrorPage", // Route name 
       "Error", // URL with parameters 
       new {controller = "Home", action = "Error"}); 

ou

routes.MapRoute("ExceptionPage", // Route name 
       "Exception", // URL with parameters 
       new {controller = "Errors", action = "Exception"}); 
Questions connexes