C# 如何向MVC核心中的控制器方法添加替代路由以支持遗留端点
我正在尝试的以下代码正在更改路由,使其只能通过[Area]/[Controller]/DailyStatusSummary访问-是否有任何方法将其添加为替代路由C# 如何向MVC核心中的控制器方法添加替代路由以支持遗留端点,c#,asp.net-mvc,.net-core,asp.net-core-mvc,asp.net-mvc-routing,C#,Asp.net Mvc,.net Core,Asp.net Core Mvc,Asp.net Mvc Routing,我正在尝试的以下代码正在更改路由,使其只能通过[Area]/[Controller]/DailyStatusSummary访问-是否有任何方法将其添加为替代路由 [HttpGet("[Area]/[Controller]/DailyStatusSummary")] public async Task<IActionResult> CompanyStatusSummary() { ... etc. [HttpGet(“[Area]/[Con
[HttpGet("[Area]/[Controller]/DailyStatusSummary")]
public async Task<IActionResult> CompanyStatusSummary()
{
... etc.
[HttpGet(“[Area]/[Controller]/DailyStatusSummary”)]
公共异步任务CompanyStatusSummary()
{
等
背景:
我曾经有一个名为DailyStatusSummary的控制器操作。我已经重构了代码,为操作提供了更好的名称,这意味着这个操作现在被称为CompanyStatusSummary。我担心一些用户会将书签添加到旧的DailyStatusSummary端点,因为它是一个受欢迎的页面,所以我尝试将其作为一种替代路径添加(因此,如果您导航到旧端点或新端点,它将点击CompanyStatus Summary操作。)在App_Start\RouteConfig.cs中,您可以创建特定的路由。假设您的区域为“areaABC”,控制器为“controllerXYZ”,并且只有操作发生更改,类似的操作可能会起作用:
routes.MapRoute(
name: "Alternate",
url: "areaABC/controllerXYZ/DailyStatusSummary",
defaults: new { area = "areaABC", controller = "controllerXYZ", action = "CompanyStatusSummary"}
);
控制器中的操作应保留CompanyStatus摘要(如果使用通用路由捕获,则删除):
重要提示:自定义路由必须在通用MVC路由之前创建。路由是按顺序计算的,如果一个路由与请求URL匹配,则忽略其余路由。谢谢,我实际上使用的是core 3.1,我现有的路由代码如下所示,您能提供适合此路由的Routes.MapRoute代码的翻译吗?`app.UseEndpoints(endpoints=>{endpoints.MapControllerOute(名称:“区域”,模式:{area:exists}/{controller=Home}/{action=Index}/{id?}”);endpoints.MapControllerOute(名称:“default”,模式:{controller=Home}/{action=Index}/{id?}); });`
[HttpGet("[Area]/[Controller]/CompanyStatusSummary")]
public async Task<IActionResult> CompanyStatusSummary()
{
endpoints.MapControllerRoute(
name: "Alternate",
pattern: "areaABC/controllerXYZ/DailyStatusSummary",
defaults: new { area = "areaABC", controller = "controllerXYZ", action = "CompanyStatusSummary" });