zoukankan      html  css  js  c++  java
  • mvc路由

          routes.MapRoute(
                    name: "blog",
                    //包含参数的url
                    url: "{year}-{month}-{day}",
                    defaults: new { Controller = "blog", Action = "index" },
                    //参数的约束
                    constraints: new { year = @"d{4}", month = @"d{2}", day = @"d{2}" }
                    //namespaces: new string[]{}
                    );
    
    
                routes.MapRoute(
                    "Test",
                    //不包含参数的url
                    "i-am-home-page",
                    new { controller = "Home", action = "Index" }
                    );

    或自定义route类,一条路由一个类

      public class MyRouter : RouteBase
        {
            public override RouteData GetRouteData(HttpContextBase httpContext)
            {
                //home-index
                //home-index-123
                var virtualPath = httpContext.Request.AppRelativeCurrentExecutionFilePath;
                virtualPath = virtualPath.Substring(2).Trim();
                string[] paths = virtualPath.Split('-');
    
                var data = new RouteData(this, new MvcRouteHandler());
                data.Values.Add("controller", paths[0]);
                data.Values.Add("action", paths[1]);
                if (paths.Length > 2)
                {
                    data.Values.Add("id", paths[2]);
                }
                return data;
            }
    
            public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values)
            {
                if (!values.ContainsKey("controller") || values["controller"].ToString().ToLower() != "home")
                { return null; }
                if (!values.ContainsKey("action") || values["action"].ToString().ToLower() != "index")
                { return null; }
    
                var path = values["controller"].ToString() + "-" + values["action"].ToString();
                if (!string.IsNullOrEmpty(values["id"].ToString()))
                { path += "-" + values["id"].ToString(); }
    
                return new VirtualPathData(this, path);
            }
        }
  • 相关阅读:
    不爽
    HOLD ON
    Netnet
    Plan
    TFS 2010 中使用 签入注释 策略
    GO 语言编程 windows 环境搭建
    日期选择器
    DEDE CMS 验证码不显示的问题
    win8 无法打开任务管理器
    对页面元素中事件进行提取,保持 ,使用完成后再进行事件绑定
  • 原文地址:https://www.cnblogs.com/tgdjw/p/4617313.html
Copyright © 2011-2022 走看看