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”;

  • 相关阅读:
    opencv视屏流嵌入wxpython框架
    Linux下makefile学习
    关于pyinstall打包时的依赖问题
    python文件结构与import用法
    python3+dlib人脸识别及情绪分析
    慕课学习--DNS的作用
    力扣leetcode11. 盛最多水的容器
    力扣leetcode5.最长回文子串
    力扣leetcode1190. 反转每对括号间的子串
    基于Ubuntu1604+ROS-kinetic+roscpp的激光雷达定位算法从零开始移植
  • 原文地址:https://www.cnblogs.com/teamate/p/3694773.html
Copyright © 2011-2022 走看看