C# 如何处理asp.net webforms中具有类似路径但有多个页面处理程序的url路由

C# 如何处理asp.net webforms中具有类似路径但有多个页面处理程序的url路由,c#,asp.net,webforms,routing,url-routing,C#,Asp.net,Webforms,Routing,Url Routing,具有不同页面处理程序的不同URL无法正常工作,因为它总是从global.asax文件获取第一个路由处理程序 Page_ID Page_Name Page_url Page_Handler Parent_Page_ID 1 Home home i

具有不同页面处理程序的不同URL无法正常工作,因为它总是从global.asax文件获取第一个路由处理程序

Page_ID     Page_Name               Page_url                                    Page_Handler        Parent_Page_ID
1           Home                    home                                        index.aspx              0               
2           Personal                personal                                    Personal.aspx           0               
3           Accounts & Deposits     personal/acounts-deposit                    Personal.aspx           2               
4           Current Account         personal/acounts-deposit/current-account    Personal.aspx           3               
5           Current Gold Accounts   personal/acounts-deposit/gold-account       gold-account.aspx       3               
6           Easy Saver              personal/acounts-deposit/easy-saaver-ac     Personal.aspx           3               
7           Fixed Deposits          personal/acounts-deposit/fixed-account      fixed-account.aspx      3               
8           Loans                   loans                                       loans.aspx              0               
9           Personal Loans          loans/personal-loans                        loans.aspx              8               
10          car Loans               car-loans                                   car-loan.aspx           8     
在我的菜单表中,我可以一页一页地识别url,因为它是唯一的

    routes.MapPageRoute("Personal_Route", "en/{*path}", "~/personal.aspx", false,
        new RouteValueDictionary {
                    { "path", "Page-not-found" },{ "PageName", "Page-not-found" }
                });


    routes.MapPageRoute("Personal_Route2", "en/{*path}", "~/gold-account.aspx", false,
        new RouteValueDictionary {
                    { "path", "Page-not-found" },{ "PageName", "Page-not-found" }
                });

    routes.MapPageRoute("Personal_Route2", "en/{*path}", "~/fixed-account.aspx", false,
        new RouteValueDictionary {
                    { "path", "Page-not-found" },{ "PageName", "Page-not-found" }
                });
默认情况下,上述路由代码始终使用personal.aspx作为所有url的处理程序

我已经试了很长一段时间了,但我没能做对。我将非常感谢您在这方面的帮助,以便每个页面都由基于页面url的正确页面处理程序处理

我希望页面由页面处理程序处理

www.abc.com/personal  ----  (Personal.aspx)
www.abc.com/personal/acounts-deposits -----(Personal.aspx)
www.abc.com/personal/acounts-deposits/current-account -----(Personal.aspx)
www.abc.com/personal/acounts-deposits/current-gold-account ----- (gold-account.aspx)
www.abc.com/personal/acounts-deposits/easy-saver-ac -----(Personal.aspx)
www.abc.com/personal/acounts-deposits/fixed-account ----- (fixed-account.aspx(
www.abc.com/loans ----- (loans.aspx) 
www.abc.com/loans/personal-loans ----- (loans.aspx)
www.abc.com/loans/car-loans ----- (car-loan.aspx)

我认为您需要更具体地指定routeUrl参数

请查看两个msdn页面,如果您还没有: