最近在整理之前的项目,无意中发现一个有趣的点,拿来跟大家分享一下
不知道大家之前有没有注意过,我们新建的web一般应用程序(web form),有的时候有后缀,有的时候没有后缀,如下图
今天找了一下原因,为了url友好性,vs在新建的页面中将后缀名自动隐藏掉了,上代码:
第一个页面调用的路由方法是:
var settings = new FriendlyUrlSettings();
settings.AutoRedirectMode = RedirectMode.Permanent;
routes.EnableFriendlyUrls(settings);
第二个页面调用的路由方法是:
routes.EnableFriendlyUrls();
后来我找到了他们调用方法的解释:
两种不同的路由调用了下面两种不同的方式
// 摘要:
// 为 Web 窗体页启用友好的 URL。
//
// 参数:
// routes:
// 路由集合。
public static void EnableFriendlyUrls(this RouteCollection routes);
//
// 摘要:
// 为 Web 窗体页启用友好的 URL。
//
// 参数:
// routes:
// 路由集合。
//
// settings:
// 启用友好的 URL 时要使用的设置。
public static void EnableFriendlyUrls(this RouteCollection routes, FriendlyUrlSettings settings);
后来,我进行了反编译,看到真实代码,发现代码中对页面url进行了重写,反编译的工具:Resharper,后面我会接着介绍Resharper