zoukankan      html  css  js  c++  java
  • ASP.NET MVC自定义路由

    自定义约束前

    namespace MvcApplication2
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     
                //默认
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    }

    效果

    约束前

      自定义约束后

    实现IRouteConstraint接口

    using System;
    using System.Web.Routing;
     
    namespace MvcApplication2.Extension
    {
        public class ExcludeController : IRouteConstraint
        {
            private readonly string _controller;
     
            public ExcludeController(string controller)
            {
                _controller = controller;
            }
            public bool Match(System.Web.HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values,
    RouteDirection routeDirection) {
    //如果路由中拿到的controller值与约束设定的值相等,就返回false return !string.Equals(values["controller"].ToString(), _controller, StringComparison.OrdinalIgnoreCase); } } }
     

    路由添加约束

    using System.Web.Mvc;
    using System.Web.Routing;
    using MvcApplication2.Extension;
     
    namespace MvcApplication2
    {
        public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
     
                //默认
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                    constraints: new { controller = new ExcludeController("RentalProperties") }
                );
            }
        }
    }
     

    效果

    约束后

    可见,加上自定义约束后,带RentalProperties名称的控制器将被限制。

  • 相关阅读:
    VMware 中安装Centos
    go with go
    [APIO2012]派遣【左偏树】
    后缀自动机三·重复旋律6
    AC自动机(二次加强版)
    [HAOI2016]找相同字符【GSAM广义后缀自动机】
    吉司机线段树【学习笔记】
    [ZJOI2015]诸神眷顾的幻想乡【GSAM】
    广义后缀自动机(广义 SAM)【模板】
    Important Sisters【HDU-4694】【Dominator Tree】
  • 原文地址:https://www.cnblogs.com/gscvery/p/4309774.html
Copyright © 2011-2022 走看看