2

假设映射到我的根托管目录的域是example.com. GoDaddy 强制将其他域映射到根目录的子目录。例如,我的第二个域 ,example1.com映射到example.com/example1.

我将我的 ASP.NET MVC 站点上传到这样的子目录,却发现用于导航的 ActionLink 具有以下格式:

http://example1.com/example1/Controller/Action

换句话说,即使我使用映射到子目录的域,URL 中仍然使用子目录。我想更改我的 ActionLinks 的格式。

但是,我注意到我也可以通过以下方式访问相同的路径:

http://example1.com/Controller/Action

(省略子目录)

我想让我的 ActionLinks 自动删除子目录,因为它不是必需的。

如果不将 ActionLinks 更改为普通的旧 URL,这是否可能?

4

2 回答 2

1

不,我不这么认为,因为动作链接主要用于渲染控制器/动作。另一种解决方法是,如果您有服务器的安装访问权限,则使用像 iirf.codeplex.com 这样的 URL 重写工具,它是免费的,而且效果很好。但是,重写可能会产生其他一些意想不到的后果,具体取决于您在做什么。

HTH。

于 2010-06-09T19:16:50.293 回答
1

你可以尝试在你的 global.asax 中添加额外的路由语句,从你的子目录开始。例子:

routes.AddRoute("example1/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });
routes.AddRoute("{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional });

我相信路由是从全局 asax 开始按顺序检查的,因此您可以有效地将请求路由到正确的位置。但是,您的链接仍会在 URL 中包含“example1”文件夹。

于 2010-06-09T19:17:03.940 回答