ASP.NET Core MVC使用参数路由到url

时间:2018-12-20 16:50:50

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

我已经使用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的价值在于它是动态的。

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

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

在本地测试时,默认路由的配置可以很好地工作,但是发布路由后仍然可以工作,但是URL错误。 是什么原因引起的? 创建区域会解决这种网址的路由吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

对我来说,做什么是在web.config文件上编辑路径,而其余的灵魂保留不变。 从protected function _initAutoLoader() { $loader = Zend_Loader_Autoloader::getInstance(); $loader->registerNamespace('MyExternalLib'); return $loader; } path="*",其中ApplicationName是所需的路由参数。