2016-08-03 8 views
1

役割に基づいて別のアクションにリダイレクトする必要があります。私はRouteConfig.csに以下の変更を加えました。ここでASP.NET MVCルーティング - アクション名とURLが同じ場合にルートにリダイレクトする

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

私のコントローラ

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

コードの流れがreturn RedirectToRoute("")まで正常に動作しますが、このコードフロー後に適切な/関連に行くことはありませんされますアクションと空のビューが返されます。

注:ブローカーと借り手の両方のビューには、静的テキストがありません。

[ネットワーク]タブでは、適切なリダイレクトが実行されていて、ブラウザのURLがルートURLに設定されていることがわかります。

enter image description here

RedirectToRoute("Broker")それはしかしHomeControllerBrokerアクションメソッドをabc.com/broker当たらないはずですし、空のビューが返されるよう302応答し、ユーザに結果をabc.com/brokerにリダイレクトされます。 RouteConfig.csによると、それはBrokerアクションメソッドをヒットする必要があります。

私がここで間違っていることを指摘してください。

+0

あなたの現在のURL(リダイレクトから)は 'Home/Broker'ですか?それであなたがしている問題は何ですか? – Shyju

+0

リダイレクト時の@Shyju Urlはabc.com/Brokerになります。しかし、対応するビューを返さず、空のビューを返します。 – Zeeshan

+0

ブラウザでURLにアクセスすると、ビューは空ですか?だからあなたのリダイレクトとは関係ありません。儀式? – Shyju

答えて

0

ウェブプロジェクトのルートに "Borker"と "Borrower"という名前のディレクトリがあることが判明しました。このMVCルーティングモジュールが無視され、リクエスト(abc.com/brokerおよびabc.com/borrower)がこれらのディレクトリに移動されたためです。だから私はこれらのディレクトリの名前を変更し、すべてが期待どおりに機能しました:)

関連する問題