2012-03-29 25 views
0

私はCMSを作成しており、管理者ルート以外のすべての要求をDefault.aspxに送信したいとします。ここで私が持っているものです。ASP.NET 4 Webformsルーティング

protected void Application_Start(object sender, EventArgs e) 
    { 
     RouteTable.Routes.Ignore("favicon.ico"); 

     RouteTable.Routes.MapPageRoute("Administrator", 
      "Administrator", 
      "~/Admin/Default.aspx"); 

     RouteTable.Routes.MapPageRoute("CMS", 
      "{PageURL}", 
      "~/Default.aspx"); 
    } 

これは、のような要求のために働いている:

mywebsite.com mywebsite.com/test mywebsite.com/anothertest

は、しかし、私が手

mywebsite.com/another/test

いるのでどのように私は私のルーティングを変更することができます:リソースが見つかりことができません複数のレベルをキャッチしますか?

答えて

2

{PageURL}{*PageURL}に設定してみることもできます(または、{*}はうまくいくと思いますが、わかりません)。ルートワイルドカードを使用してください。

それとも、あなただけのワイルドカードは非常に強力であり、ルートが順番に考え出しているので、あなたのルートの最後に置かれるべきであることを覚えておいてくださいPageURL/{*TheRest}

ような何かを行うことができます。

+0

RouteTable.Routes.MapPageRoute( "CMS"、 "{* PageURL}"、 "〜/ Default.aspx")を追加していただきありがとうございます。一番下のルートがトリックをするので – Paul

関連する問題