0

IIS サーバーの既定のディレクトリを MVC 4 Razor アプリケーションとして設定しています。動的アクションを URL に渡すことができるように設定しました。例えば。

www.mydomain.com/4
www.mydomain.com/5

基本的に、これら 2 つの起動アカウントは、それぞれ ID が 4 と 5 のユーザー用です。

よく働く。

しかし、同じサーバーに admin という仮想ディレクトリがあります。www.mydomain.com/admin に移動できることを願っていますが、残念ながら MVC がそれを傍受し、amdin のユーザー ID を検索していると考えています。

仮想ディレクトリを許可するためにルートに穴を開ける方法はありますか?

前もって感謝します!

/エリック

########## ルートを追加中
        //route for site root
        routes.MapRoute(
        "YourRouteName", // Route name
        "{flightNumber}/{action}", // URL with parameters
        new { controller = "Home", action = "Index", flightNumber = " " } // Parameter defaults
        );
4

1 に答える 1

0

ルートを制限することができます:

routes.MapRoute(
    "YourRouteName",
    "{flightNumber}/{action}",
    new { controller = "Home", action = "Index" },
    new { flightNumber = @"\d+" }
);

ここで、常にflightNumber1桁以上の数字とそれに続くオプションのコントローラーアクションが必要です。

したがって、コントローラーのアクションを/5ヒットしてパラメーターを渡し、コントローラーのアクションをヒットしてパラメーターを渡します。IndexHomeflightNumber = 5/5/adminAdminHomeflightNumber = 5

IDが整数ではなく文字列の場合、ルーティングエンジンがルートを明確にすることができなくなるため、状況が複雑になります。正規表現を使用してパーツを可能なアクションのリストに制約することもできますがaction、誰かがホームコントローラーに新しいアクションを追加した場合、ルート制約も更新する必要があるため、そのアプローチは少し制限されます。

于 2013-01-14T21:52:26.710 に答える