2012-03-29 89 views
0

我正在创建一个CMS,并且希望将所有请求发送到Default.aspx(管理员路由除外)。以下是我有:ASP.NET 4 Webforms Routing

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 2012-03-29 03:36:14