0

ASP.NETMVC4アプリがあります。RouteConfig.csファイルでルートを設定しようとしています。基本的に、現在関心のある2つのURLがあります。これらのURLは次のとおりです。

/App
/App/Auth

私のファイル構造は次のようになります。

/Views
  App
    Index.cshtml
    Auth
      Index.cshtml
  Docs
    Index.cshtml
  Index.cshtml

RouteConfig.csファイルには、次のものがあります。

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
  "Index",
  "Index",
  new { controller = "Views", action = "Index" }
);

routes.MapRoute(
  "Dashboard", // Route name
  "{controller}/auth/{action}/{id}", // URL with parameters
  new { controller = "App", action = "Index", id = UrlParameter.Optional } 
);

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

奇妙なことに、/ App / Authにアクセスすると、/Appに移動します。私の一生の間、私はその理由を理解することができません。誰かがこれを行う方法を知っていますか?ありがとう!

4

2 に答える 2

0

ルートを次のように変更します。

routes.MapRoute(
  "Dashboard", // Route name
  "App/auth/{action}/{id}", // URL with parameters
  new { controller = "App", action = "Index", id = UrlParameter.Optional } 
);
于 2013-01-05T18:43:27.023 に答える
0

アプリはあなたが求めたことを正確に実行しています。最初のルートは、コントローラー「アプリ」とアクション「インデックス」に移動します。フォルダAuthをアプリと同じレベルに移動してから、ルートを次のように変更します。

routes.MapRoute(
  "Dashboard", // Route name
  "app/auth/{action}/{id}", // URL with parameters
  new { controller = "Auth", action = "Index", id = UrlParameter.Optional } 
);

さらに良い解決策は、Authコントローラーを忘れて、Appフォルダーにビューauth.cshtmlを作成し、Appコントローラーにアクション「Auth」を作成するだけです。ルートを完全に削除すると、/ app/authがによって処理されます。デフォルトルート。

于 2013-01-05T18:46:38.283 に答える