2016-11-22 23 views
2

是否有可能捕獲控制器下的所有子路徑?捕獲到某個控制器的所有「子路徑」

FooControllerBarController我想重定向不具有匹配的方法在它的控制器到Redirect方法的所有鏈接:

www.domain.com/Foo/WhatEver - call Foo.Redirect() 
www.domain.com/Foo/WhatEver2 - call Foo.Redirect() 
www.domain.com/Bar/WhatEver - call Bar.Redirect() 
www.domain.com/Bar/WhatEver2 - call Bar.Redirect() 

我知道這是可能趕上它在404解釋here但我想在控制器級別上捕獲它們。

這是可能的,如果是的話如何?

回答

2

App_Start.RouteConfig我添加了這個:

routes.MapRoute(
       "Foo", 
       "Foo/{*arg}", 
       new { controller = "Foo", action = "Redirect", arg = "" } 
      ); 

重定向與MP2它即:

www.domain.com/Foo/ 
www.domain.com/Foo/SubPath/ 
www.domain.com/Foo/SubPath/AnotherSubPath/ 

它還包括索引的所有子路徑。如果刪除了星號,只重定向子路徑:

www.domain.com/Foo/SubPath/ 

它不重定向指數或子:

routes.MapRoute(
        "Foo", 
        "Foo/{arg}", 
        new { controller = "Foo", action = "Redirect", arg = "" } 
       ); 

下的「富」控制這些重定向到「重定向」方法路徑到子路徑。

相關問題