【发布时间】:2021-06-23 01:34:35
【问题描述】:
我想在 ASP.NET Core 5 中覆盖路由
我试过这个,但它不起作用
var lastExistingRoute= routeBuilder.Routes.FirstOrDefault(x => ((Route)x).Name == "HomePage");
routeBuilder.Routes.Remove(lastExistingRoute);
routeBuilder.MapRoute("HomePage", "",
new { controller = "CustomPage", action = "Homepage", });
var lastDownloadRoute=routeBuilder.Routes.FirstOrDefault(x => ((Route)x).Name == "GetDownload");
routeBuilder.Routes.Remove(lastDownloadRoute);
routeBuilder.MapRoute("GetDownload", "download/getdownload/{guid}/{agree?}",
new { controller = "AzTechProduct", action = "GetPayed", });
【问题讨论】:
-
您是否遇到任何错误或异常?一般来说,我们使用Routing middleware,并使用 UseRouting() 和 UseEndpoints() 来配置 Asp.net core 5 中的路由,但从你的代码看来你想使用 UseMvc() 方法来配置路由, 正确的?如果是这种情况,您应该在 ConfigureServices 方法中禁用端点路由:
services.AddMvc(Op => { Op.EnableEndpointRouting = false; }); -
@ZhiLv - 简单的添加新路线对我有用。此代码参考是根据 .Net Core 3.10 endpointRouteBuilder.MapControllerRoute("NewCheckout", "onepagecheckout", new { controller = "NewCheckout", action = "OnePageCheckout" });好消息是即使使用相同的路由名注册也不会引发任何异常
标签: asp.net-core routes asp.net-core-5.0 asp.net-core-routing