zoukankan      html  css  js  c++  java
  • [Buffalo]ASP.NET MVC路由映射

      Asp.Net的路由系统旨在通过注册URl模版与物理文件之间的映射进而实现请求地址与文件路径之间的分离,但对于Asp.Net Mvc应用来说,请求的目标却是定义在某个Controller类型中的Action方法。

      为了实现针对目标Controller和Action的路由,Asp.Net Mvc在System.Web.Mvc.RouteCollectionExtensions中针对RouteConllection类型定义了一系列的扩展方法以实现文件路径无关的路由映射。其中的两组方法,Ignore用于注册不需要进行路由的URL模板;MapPageRoute方法用于进行基于URL模版的路由注册。

      对于Asp.net Mvc来说,URL路由系统对请求地址进行解析后生成的路由数据中必须包含目标Controller的名称。由于Controller名称仅仅对应着类型的名称,但是激活Controller实例的前提是我们能够正确的解析出它的具体类型,所以在具有多个同名Controller类型时,还需要用到命名空间。在调用MapPageRoute方法时可以通过字符串数组类型的参数namespace来指定一个命名空间的列表。对于注册的命名空间,可以指定一个代表完整命名空间的字符串,也可以使用“*”作为通配符表示对命名空间相应的部分不作任何约束。

      对于针对定义在某个Controller中的某个Action的请求,如果注册的路由表与之匹配,具体匹配的路由对象的GetRouteData方法被调用并返回一个具体的RouteData对象。对请求的地址进行解析得到的目标Controller和Action的名称必须包含在该RouteData的Values属性对应的RouteValueDictionary对象中,其对应得Key分别为“controller”和“action”;

  • 相关阅读:
    asp.net :使用jquery 的ajax +WebService+json 实现无刷新去后台值
    如何清理数据库缓存
    如何在虚拟机中Linux+Oracle10gRAC安装
    ORA01031 权限不足存储过程中DBA 角色用户无法执行DDL
    如何查看存储过程执行计划
    如何查看执行计划
    如何使用tkprof
    C#位运算讲解与示例[转]
    C#中Invalidate() 方法
    如何创建强命名程序集, 如何查看强命名程序集的PublicKeyToken
  • 原文地址:https://www.cnblogs.com/teamate/p/3694773.html
Copyright © 2011-2022 走看看