【发布时间】:2021-04-06 21:13:57
【问题描述】:
我的 RouteConfig.cs 文件中有以下内容
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
// route default URL to index.aspx
routes.MapPageRoute(
routeName: "LoginPageRoute",
routeUrl: "login",
physicalFile: "~/Login.aspx"
);
routes.MapPageRoute("LoginPageRoute2", "login2", "~/Login.aspx");
}
但是,如果我尝试使用“login”或“login2”访问我的 WebApp,我会收到资源找不到错误消息。
- http://localhost:4200/login2 - 失败
- http://localhost:4200/login - 失败
- http://localhost:4200/Login.aspx - 加载正常
我的 Global.asax 有以下内容
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
【问题讨论】:
-
你确认你的方法被击中了吗?设置断点或添加日志记录?
-
@mason 是的,我通过 Visual Studio 在调试中运行了我的项目,并验证了 Application_Start() 和 RegisterRoutes() 已被调用。我对 aspx 和路由映射有点陌生,所以我不确定如何调试流程以尝试访问“/login”。网页只是直接进入 404 错误,并没有达到我的任何调试点。
-
您是否尝试过重新排列映射页面路由的顺序?也许在映射默认 MVC 路由之前映射它们?
-
@mason :D 所以我刚刚找到另一篇文章,展示了如何跟踪路由表查找,我注意到我没有得到正确的路由。然后我看到了你的评论,所以我把我的路线移到了顶部……和……魔法。它现在正在工作。谢谢!