5

Có rất nhiều bài hướng dẫn về cách tạo RouteConstraints trong các phiên bản MVC trước:Làm thế nào để đăng ký RouteConstraints trong MVC6

Làm thế nào để làm việc này với MVC6, cụ thể đăng ký ràng buộc tuyến tùy chỉnh, vì vậy nó có thể được sử dụng trong các thuộc tính của các hành động ApiController?

Tôi đã tạo ra một hạn chế đường tùy chỉnh, được gọi là NonEmptyGuid, mà thực sự chỉ cần đảm bảo một Guid không trống được sử dụng như các tham số của một GET Hành động:

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; 
    } 
} 

Câu hỏi: thế nào và người nào đăng ký RouteConstraint tùy chỉnh này cho một ứng dụng MVC6 (ví dụ: trong trường hợp này trong một Dự án WebApi).

Trả lời

0

Bạn có thể sử dụng RouteOptions đăng ký khó khăn của bạn:

services.Configure<RouteOptions>(options => 
           options 
           .ConstraintMap 
           .Add("test", typeof(TestRouteConstraint))); 
Các vấn đề liên quan