我正在使用Microsoft的ASP.NET Friendly URLs进行一些简单的URL清理。
我正在处理的网站有很多子文件夹,每个子文件夹都有自己的Default.aspx
。我希望在网址出现时随时删除Default.aspx
部分。
示例:
//Original: www.mysite.com/Default.aspx
//Goal: www.mysite.com/
//Original: www.mysite.com/Users/Default.aspx
//Goal: www.mysite.com/Users/
默认情况下,库会删除扩展程序,并且我可以(大致)通过执行以下操作来实现我的目标:
RouteConfig.cs
routes.MapPageRoute("Root Default", "", "~/Default.aspx");
routes.MapPageRoute("Subfolder1 Default", "Subfolder1/", "~/Subfolder1/Default.aspx");
routes.MapPageRoute("Subfolder2 Default", "Subfolder2/", "~/Subfolder2/Default.aspx");
...
...
...
routes.MapPageRoute("Subfolder24 Default", "Subfolder24/", "~/Subfolder24/Default.aspx");
routes.MapPageRoute("Subfolder25 Default", "Subfolder25/", "~/Subfolder25/Default.aspx");
此方法的问题是MapPageRoute
的第三个参数是指向一个特定文件的路径,这意味着我必须为每个文件编写其中一个规则。每个子文件夹。我担心开发人员会在我之后添加一个子文件夹并且不知道如何在RouteConfig文件中添加记录。
问题:使用友情网址/ RouteConfig / RouteMapping,有没有办法有条件地删除所有文件夹的一个特定页面名称?
(我希望尽可能避免使用Web.Config重写,以保持所有重写的一致性。)
* Project是ASP.NET 4.5 Web窗体