2014-05-04 37 views
0
繼承

是否有可能限制添加到自定義路線從RouteBase繼承?添加約束路由從RouteBase

我的路線看起來是這樣的:

public class PageRoute : RouteBase { 

public override RouteData GetRouteData(HttpContextBase httpContext) 
{ 
    var path = httpContext.Request.Path; 
    if (path.Contains("api") || path.Contains("ui")) 
    { 
     return null; 
    } 

我想這這看起來有點陰涼,我想註冊我的路線,並說,如果URL包含apiui甚至不打擾試試這條路線。這可能嗎?

回答

0

的幾個注意事項:1。 你想,如果你只想指定限制來從路線派生並沒有RouteBase。約束在Route類介紹。 2.有什麼錯指定的約束像你這樣(明確GetRouteData)它只是不可擴展的。 3. path.Containts(「API」)是不是一個很好的約束,同樣不是一個用「UI」,它會失敗有幾個原因(不區分大小寫和字符串,如「馬平」會失敗的話)。

所以,你要考慮的是這樣的:

var segments = path.Split(new[] { '/' }); 
segments.Any(segment => segment.Equals("api", StringComparison.OrdinalIgnoreCase) || 
      segment.Equals("ui", StringComparison.OrdinalIgnoreCase));