zoukankan      html  css  js  c++  java
  • asp.net mvc 通过修改路由规则来实现页面的URL多参数传递

    【原文】http://blog.csdn.net/risingsun001/article/details/9068187

    修改MVC3中的路由规则

    在Global.asax.cs中,修改路由规则

    原路由规则

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.MapRoute(
                    "Default", // 路由名称
                    "{controller}/{action}/{id}", // 带有参数的 URL
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional} // 参数默认值
                );

    MapRoute方法在RouteCollectionExtensions里有6个重载版本!在这里我挑了一个参数最多的重载版本来进行介绍

    public static Route MapRoute(
        this RouteCollection routes,
        string name,
        string url,
        Object defaults,
        Object constraints,
        string[] namespaces
    )

    name:路由在路由列表里的唯一名字(两次MapRoute时name不能重复)

    url:路由匹配的url格式

    defaults:路由url {占位符} 的默认值

    constraints:url的 {占位符} 的约束

    namespaces:这个是用于设置路由搜索的控制器命名空间!

    比如,我们可以修改为下面的规则

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.MapRoute(
                    "Default", // 路由名称
                    "{controller}/{action}/{uid}_{token}_{others}.html", // 带有参数的 URL
                    new { controller = "Home", action = "Index", uid = UrlParameter.Optional, token = UrlParameter.Optional,others = UrlParameter.Optional} // 参数默认值
                );

    如果访问的URL地址如:http://localhost/home/index/123_tokenvalue_othersvalue.html

    controller="Home", action="Index", uid=123, token=tokenvalue, others=othersvalue

    获取和上面的方法一样。

    关于Route 的详细用法和说明,大家看MSDN 上的资料吧,这里给个连接:

    ASP.NET Routing:http://msdn.microsoft.com/en-us/library/cc668201.aspx?cs-save-lang=1&cs-lang=csharp

  • 相关阅读:
    数组和链表
    IAP升级
    使用Git和Github来管理自己的代码和笔记
    Eeprom和Flash的区别
    程序员的七种武器
    数据结构和算法的关系
    STVD、IAR两种编译器比较
    STM32与STM8操作寄存器的区别
    Linux用户身份与文件权限
    地图缩放到指定经纬度
  • 原文地址:https://www.cnblogs.com/xmily/p/3404589.html
Copyright © 2011-2022 走看看