MVC6

5
yılında RouteConstraints Kayıt nasıl

önceki MVC sürümlerinde RouteConstraints nasıl oluşturulacağı hakkında sayısız dersler vardır:MVC6

Nasıl MVC6 ile bu iş, özellikle kayıt yok Özel yol kısıtlaması, bu nedenle ApiController Eylemlerinin özniteliklerinde kullanılabilir?

public class NonEmptyGuid : IRouteConstraint 
{ 
    public bool Match(HttpContext httpContext, IRouter route, string routeKey, IDictionary<string, object> values, RouteDirection routeDirection) 
    { 
     if (!values.ContainsKey(routeKey)) return false; 

     if (values[routeKey].ToString().Equals(Guid.Empty.ToString())) return false; 

     return true; 
    } 
} 

Soru: nasıl

Gerçekten sadece emin boş olmayan bir Guid yapar NonEmptyGuid adlı özel rota kısıtlamasını, yarattık

bir ait parametre olarak kullanılır Eylem GET ve bu özel RouteConstraint'i bir MVC6 uygulamasına (örneğin bu durumda bir WebApi Projesinde) kaydeder.

cevap

0

Sen kısıtlamaları kayıt RouteOptions kullanabilirsiniz:

services.Configure<RouteOptions>(options => 
           options 
           .ConstraintMap 
           .Add("test", typeof(TestRouteConstraint)));