2016-08-03 35 views
1

Ich muss auf andere Aktion basierend auf Rolle umleiten. Ich habe folgende Änderungen an RouteConfig.cs vorgenommen.ASP.NET MVC Routing - Redirect zu Route, wenn Aktion Name und URL identisch ist

RouteConfig.cs

  routes.MapRoute(
      name: "borrower", 
      url: "borrower", 
      defaults: new { controller = "Home", action = "Borrower" }); 

     routes.MapRoute(
      name: "broker", 
      url: "broker", 
      defaults: new { controller = "Home", action = "Broker" });     

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }); 

Hier ist mein Controller

HomeController.cs

public class HomeController : Controller 
{ 
    public ActionResult Index() 
    { 
     if (UserPrincipal.Current.Identity.IsAuthenticated) 
     { 
      if (UserPrincipal.Current.IsInRole("Broker")) 
      { 
       return RedirectToRoute("broker");      
      } 
      else if (UserPrincipal.Current.IsInRole("Borrower")) 
      { 
       return RedirectToRoute("borrower"); 
      }     
     } 
     return View(); 
    } 

    public ActionResult Broker() 
    { 
     return View(); 
    } 
    public ActionResult Borrower() 
    { 
     return View(); 
    } 
} 

-Code Fluss richtig bis return RedirectToRoute("") arbeiten, aber nach diesem Code Fluss geht nie zu verwandten/angemessen Aktion und leere Sicht wird zurückgegeben.

HINWEIS: Broker-und Kreditnehmeransichten sind nicht leer, sie haben statischen Text.

In der Registerkarte Netzwerk können Sie sehen, dass die richtige Umleitung ausgeführt wird und die URL im Browser für die Weiterleitung der URL festgelegt wird.

enter image description here

RedirectToRoute("Broker") Ergebnis in 302 Reaktion und Benutzer zu abc.com/broker, wie es sollte umgeleitet, aber abc.com/broker nicht Broker Aktionsmethode in HomeController und leer zurückgegeben anstößt. Nach RouteConfig.cs sollte es Broker Aktionsmethode treffen.

Bitte weisen Sie darauf hin, was ich hier falsch mache.

+0

Also ist deine aktuelle URL (von der Weiterleitung) 'Home/Broker'? Was ist das Problem, das du hast? – Shyju

+0

@Shyju URL auf redirect wird abc.com/Broker. Aber es gibt keine entsprechende Ansicht zurück, stattdessen gibt es eine leere Ansicht zurück. – Zeeshan

+0

Wenn Sie auf die URL in einem Browser zugreifen, sind Sie Ansicht ist leer? Es hat also nichts mit deinem Redirect zu tun. Ritus? – Shyju

Antwort

0

Es stellte sich heraus, dass ich ein Verzeichnis namens "Borker" und "Borrower" im Stammverzeichnis des Webprojekts hatte. Aus diesem Grund wurde das MVC-Routing-Modul ignoriert und Anfragen (abc.com/broker und abc.com/borrower) wurden in dieses Verzeichnis verschoben. Also habe ich diese Verzeichnisse umbenannt und alles funktioniert wie erwartet :)