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名称的控制器将被限制。

  • 相关阅读:
    U3D不同平台载入XML文件的方法——IOS MAC Android
    C++使用规范小记
    设置角色对象可见性
    编辑器菜单操作
    U3D资源动态加载异步方案探究
    Animation动画
    Unity3D失去焦点时继续渲染
    C#打开当前目录
    组件模式代码实践(C#版本)
    Unity3D批处理脚本
  • 原文地址:https://www.cnblogs.com/gscvery/p/4309774.html
Copyright © 2011-2022 走看看