當某個請求能夠被成功路由的前提是它滿足某個Route對象設(shè)置的路由規(guī)則,具體來說,當前請求的URL不僅需要滿足路由模板體現(xiàn)的路徑模式,請求還需要滿足Route對象的所有約束。路由系統(tǒng)采用IRouteConstraint接口來表示路由約束,所以我們在接下來的內(nèi)容中將路由約束統(tǒng)稱為RouteConstraint。 在大部分情況下,約束都是針對路由模板中定義的某個路由參數(shù),其目的在于驗證URL攜帶的某部分的內(nèi)容是否有效。不過也有一些約束與路由參數(shù)無關(guān),這些約束規(guī)范往往是除URL之前的其他請求元素,比如前面提到的HttpMethodRouteConstraint檢驗的就是請求采用的方法。 [本文已經(jīng)同步到《ASP.NET Core框架揭秘》之中]

   1: public interface IRouteConstraint
   2: {
   3:     bool Match(HttpContext httpContext, IRouter route, string routeKey,
   4:     RouteValueDictionary values, RouteDirection routeDirection);
   5: }

網(wǎng)友評論