Ich bin ziemlich neu in MVC aber nicht sicher, genau die Redirect ... die Standard-Umleitung in WebForms, dh die Standard-Response.Redirect()
ASP.NET MVC: Was ist die richtige Methode, um auf Seiten/Aktionen in MVC umzuleiten?
Zum Beispiel verwendet ersetzt, muß ich andere Seiten in ein paar Szenarien umleiten:
1) Wenn sich der Benutzer abmeldet (Formular-Abmeldung in Aktion), möchte ich auf eine Anmeldeseite umleiten.
2) in einem Controller oder Base-Controller Ereignis zB Initialize
, möchte ich auf eine andere Seite (AbsoluteRootUrl + Controller + Aktion)
Es scheint umleiten, dass mehrere Umleitungen in einigen Fällen aufgerufen, die Fehler verursacht, etwas zu tun mit der Tatsache, dass eine Seite bereits umgeleitet wird? Wie kann ich die aktuelle Anfrage abbrechen und nur weiterleiten?
Update:
Die Antwort auf diese Frage (System.Web.Mvc.Controller Initialize) gibt an, dass Initialize
sollte nicht verwendet werden und OnActionExecuting
verwendet werden sollte?
Alle Kommentare, warum Initialize
nicht verwendet werden sollte oder warum OnAuthorization
ist nicht eine bessere Option?
Mehr Info:
Dieser Blog-Eintrag (http://blog.wekeroad.com/blog/aspnet-mvc-securing-your-controller-actions/) zeigt an, dass OnActionExecuting
zur Authentifizierung nützlich ist (wie in den Link oben angegeben) ich dies in der Basis Controller-Klasse zu diesem Ereignis erraten Zugabe ist als jede feine Seite führt eine Aktion in MVC aus, sollte also keinen großen Unterschied machen und die Möglichkeit zum Umleiten sollte einfacher sein. Das macht Sinn, aber es scheint mir auch sinnvoll zu sein, dass Dinge in einem Event vor diesem Event gemacht werden könnten und lässt uns fragen, wofür diese Events sind? Wird geben OnActionExecuting
ein zu gehen ..
Was ist das Basis-Controller initialisieren Ereignis, das Sie erwähnt haben? –
@Mahesh Velaga: Ich habe Basis-Controller, die das Initialize-Ereignis überschreibt, dh geschützte Überschreibung void Initialize (System.Web.Routing.RequestContext requestContext) ... Ich habe einige Sicherheitsüberprüfungen dort und müssen Benutzer basierend auf diesen Überprüfungen umleiten –
Warum nicht einige Werte in tempdata oder viewdata setzen und wenn Sie die Controller-Aktion auf der Grundlage des Wertes erreichen, den Sie mit RedirectToAction umleiten können? –