2010-12-11 14 views
4

いくつかのリテラルから始まっていないURLのルートを作成する必要があります。その後、いくつかのリテラルで始まらないASP.NET MVCルート

public class MyConstraint: IRouteConstraint 
{ 
    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) 
    { 
     var value = values[parameterName] as string; 
     if (!string.IsNullOrEmpty(value)) 
     { 
      return !value.StartsWith("sampleliteral", StringComparison.OrdinalIgnoreCase); 
     } 
     return true; 
    } 
} 

そして:

routes.MapRoute("", 
        "{something}", 
        new { Controller = "Home", Action = "Index" }, 
        new 
         { 
          something = "^(?!sampleliteral)" 
         }); 

が、それはあなたがルート制約を試みるかもしれ

+0

他のルートはマップされていますか? – cspolton

+0

いいえ、私は他のすべてのルートを – SiberianGuy

+0

のためにコメントしました。そして、このルートに一致させようとしているURLは何ですか? – cspolton

答えて

4

を動作しないようになっています。私は、次のルート定義を作成している

routes.MapRoute(
    "", 
    "{something}", 
    new { Controller = "Home", Action = "Index", something = UrlParameter.Optional }, 
    new { something = new MyConstraint() } 
); 
関連する問題