Asp.net MVC 路由配置

问题描述

首先,我不是开发人员(用户界面设计师),但我不得不使用一些 asp.net,嗯,因为生活......所以我知道的很少甚至一无所知。

我有这样的结构:

视图 > 合作伙伴 >

在“合作伙伴”中,我有超过 40 个以 CamelCase 命名的文件,例如 FileName.cshtml 等...

我需要重新路由网址,而不是“website/Partners/PartnerName”,而是“website/partners/partner-name

我尝试了大量教程,但我无法理解需要做什么才能实现这一目标。 我最接近解决方案的是在 Partners 控制器中使用“[Route("partners/partner-name")]”。但是对于这个解决方案,我必须将那行代码添加到所有 40 个文件中(将来会超过一百个)。我相信必须有某种方法可以为我拥有的所有页面自动执行此操作,而不是手动编辑每个页面

再说一次,我不是开发人员,我现在只是不得不处理这个问题,而我对 .net 几乎一无所知。谢谢。

解决方法

我猜 4.6.1 是 .Net-Framework。所以我只是拍摄一个适用于 MVC 5 的答案,我们看看它有多适合你。 (因为版本控制很棘手 - 最近在 dotnet 领域令人困惑)。

您可以在名为 RouteConfig.cs

的文件中覆盖路由
routes.MapRoute(
            name: "OverrideRoute",url: "websites/partners/{partner-name}",defaults: new { controller = "AnController",action ="AnAction" }
    );

注意顺序很重要,第一场比赛获胜。此外,如果您想要特别/websites/partners/contosocompany(websites/partners/partner-name/contosocompany 中的 url 属性>

也应该可以对路线进行分组,请在此处查看此答案:Asp.net MVC 5 MapRoute for multiple routes

如果您的某些部分几乎类似于单独的 mvc 页面,请与您的开发人员联系,您也可以利用名为 MapRoute 的概念。例如,您的合作伙伴部分可能是一个区域。 https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?view=aspnetcore-5.0

...请记住,如果您是一名能够研究、阅读和更改代码的设计师 - 您已经在我们的行业中获得了业务优势。