ASP.Net MVC 路由及路由调试工具RouteDebug
2024-10-21 04:19:00
一、路由规则
1、可以创建多条路由规则,每条路由的name属性不相同
2、路由规则有优先级,最上面的路由规则优先级越高
App_Start文件下的:RouteConfig.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
name: "Default2",
url: "{controller}-{action}",
defaults: new { controller = "HomeDemo", action = "Index" }
); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "HomeDemo", action = "Index", id = UrlParameter.Optional }
);
}
}
二、路由调试工具
当为我们的应用程序注册多个路由后,由于注册不当,得不到预期的结果。为什么会发生这种情况,请求具体走了哪个路由?这个时候主人公RegisterRoutes上场了。
第一步:先下载dll类库,没有的请到我百度云盘下载
链接:https://pan.baidu.com/s/1jJ1W88cOuTrdooLySnGVSg
提取码:097u
第二步:引入包:RouteDebug
第三步:到Global.asax中重写测试路径
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles); RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); //重写测试路径
}
}
第四步:运行网站,进行分析路由规则
搞定!~~
三、路由的约束
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
name: "Default2",
url: "{controller}-{action}",
defaults: new { controller = "HomeDemo", action = "Index" },
constraints:new {Controller=@"^\d+$" }, //控制器约束
namespaces:new string[] { "MVCDemo2.Controllers" } //命名空间约束
); routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "HomeDemo", action = "Index", id = UrlParameter.Optional }
);
}
}
最新文章
- 强有力的Linux历史命令 你还记得几个
- github-windows本地安装
- php 截取中文字符串 - ord()函数 0xa0...
- 程序测试用的IE浏览器第二次无法加载入口程序的问题及其解决方法
- -bash: /bin/rm: Argument list too long的解决办法
- Jade之Mixins
- 推荐几款web站点JS(JQeury)图表(饼图,柱图,线图)
- java反射知识
- new、delete用法(一)
- SQL使用记录
- python测试框架--nose
- Android ADT Bundle(Eclipse with ADT) ADT R23
- REST API设计规范
- 图的基本算法(BFS和DFS)(转载)
- Historical节点
- JavaScript代理模式
- Kubenetes 核心概念理解
- ulimit -n 修改
- imx6 gpio分析
- HDU 1695 GCD(容斥定理)
热门文章
- python强大的绘图模块matplotlib示例讲解
- PHP实现微信提现功能
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU量产神器RT-Flash常见问题
- 关于 Sublime Text 3 中 input 无法输入的问题
- Wpf Dispatcher.BeginInvoke((Action)delegate{}));
- Web前端基础(18):jQuery基础(五)
- Mybatis专题
- 松软科技带你学开发:SQL--FIRST() 函数
- JS基础语法---函数的其他定义方式
- 解决element-ui的表格设置固定栏后,边框线消失的bug