2013-04-02 18 views
15

Hy,Web API Küçük harf Rota orada

benim Web API projesinde Küçük harf yolları uygulamak gerekir. bu i

routes.LowercaseUrls = true; 

gibi Ama mülk var olmadığını Web API şey kullanacağı bir MVC projesi olsaydı.

LowercaseRoutesMVC4 NuGet uzantısını denedim ancak uzantılarımın bana yardımcı olmaması için özel bir işleyicim olması gerekir.

Ne yapabilirim? öyle gibi

+2

Bunu zaten rota kısıtlamaları ile denediniz mi? https://gist.github.com/benfoster/3274578 – AardVark71

cevap

6

Bu ben Sen gibi WebApiConfig.cs bu yöntemi çağırabilirsiniz

public class JsonConfig 
{ 
    public static void Initiliaze(HttpConfiguration config, bool isCamelCase) 
    { 
     var json = config.Formatters.JsonFormatter; 
     json.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.None; 
     json.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; 
     json.SerializerSettings.Formatting = Formatting.None; 

     if (isCamelCase) 
      json.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); 

     config.Formatters.Remove(config.Formatters.XmlFormatter); 
    } 
} 

gibi json yapılandırma var https://gist.github.com/benfoster/3274578#file-gistfile1-cs-L4

-1

bunu buldum

public class RouteConfig 
{ 
    public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional }, 
      constraints: new { url = new LowercaseRouteConstraint() } 
     ); 
    } 
} 

public class LowercaseRouteConstraint : IRouteConstraint 
{ 
    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection) 
    { 
     var path = httpContext.Request.Url.AbsolutePath; 
     return path.Equals(path.ToLowerInvariant(), StringComparison.InvariantCulture); 
    } 
} 

gerekenler görünüyor

JsonConfig.Initiliaze(config, true); 
İlgili konular