首页 > 解决方案 > ASP.NET Core MVC 路由到带有参数的 url

问题描述

我使用 ASP.NET Core 2.1 MVC 创建了一个 Web 应用程序。目前我在发布应用程序时遇到路由问题。将发布应用程序的 url 格式是这样的:https://hostername.com/{some_parameter}

从我的应用程序生成的所有 url-s 都应该“附加”到上述 url。

所以我需要有这样的路由:

https://hostername.com/{some_parameter}/{controller}/{action}/{id}

一些例子 :

 - https://hostername.com/ApplicationName/Home/Profile
 - https://hostername.com/ApplicationName/Home/Settings
 - https://hostername.com/ApplicationName/FAQ etc... 

在阅读了关于 stackoverflow 的几个问题/解决方案后,我对此的解决方案:将默认路由更改为

routes.MapRoute(
                name: "default",
                template: $"{{parameter={settings.PrefixURL}}}/{{controller=Home}}/{{action=Index}}/{{id?}}");

它的价值在哪里settings.PrefixURL => it's the some_parameter,它是动态的。

我面临的问题=> url中的参数加倍,例如:

- https://hostername.com/ApplicationName/Home/Home/Profile
- https://hostername.com/ApplicationName/ApplicationName/FAQ

在本地测试时,默认路由的配置运行良好,但在发布路由后仍然有效,但 url 错误。什么可能导致问题?创建区域会解决路由到那种 url 的问题吗?

谢谢你。

标签: c#asp.net-mvc-routingasp.net-core-2.1

解决方案


对我来说,工作是编辑 web.config 文件上的路径,而让其余的灵魂保持不变。从path="*"path="/ApplicationName"哪里 ApplicationName 是所需的路由参数。


推荐阅读