在子域中运行ASP.NET MVC会使Html.ActionLink呈现损坏的链接

时间:2010-05-05 14:28:12

标签: asp.net-mvc asp.net-mvc-routing

我在子域中运行MVC
http://test.domain.com指向我的webhost4life帐户上的/ Test目录。

Html.ActionLink("About", "About", "Home")

它呈现了

的链接

http://test.domain.com/Test/Home/About - 这给出了404

链接应该是..

http://test.domain.com/Home/About

有没有办法覆盖ActionLink以省略渲染上的/ Test?

谢谢


实验1

我添加了一张到这张桌子的路线......

routes.MapRoute(
     "Test",  // Route name
     "Test/{controller}/{action}/{id}",  // URL with parameters
     new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
);

现在动作链接呈现这样的链接.. http://test.domain.com/Test/Test/Home/About/ 单击此按钮时,会提供404,但会提供主页控制器关于操作。

结果

不再有破损的链接,但该网站会呈现丑陋的网址。

1 个答案:

答案 0 :(得分:0)

对于使用大量子域的网站,我使用ITCloud中一个名为UrlRouteAttribute的漂亮的MVC扩展。它允许您将路径指定给每个操作,作为设置路径和名称的属性。我已将其扩展为允许完全限定的路径 - 因此要包含控制器应附加到的域/子域。如果这是您感兴趣的东西,我会在某处上传副本。