我在iis 7.5上有一个mvc 5应用程序,它有一个链接,当应用程序作为ip地址引用时,它可以正常工作,但不能作为子域引用。所以xxx.xxx.x.xx在subdomain.mydomain.com失败时有效。只有这个链接,页面上的9个左右就会因为这个怪癖而失败。
除一个链接外,所有链接都有效。当我将鼠标悬停在链接上时,状态栏显示http://subdomain.mydomain.com/Projects,单击时会在工作时列出项目 - 如路由配置中所示。我添加了配置项来强制路由,但它失败了。
它在共享布局中定义为
<li><a href="@Url.Action("Index", "Projects")" @SiteMainMenuHelper.CurrentItem(ViewBag.SiteMainMenu, SiteMainMenu.Projects) data-icon="">Projects</a></li>
路由
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
////routes.LowercaseUrls = true;
// I created this first route to force the correct action but it does not work
routes.MapRoute(
"Projects",
"Projects",
new { controller = "Projects", action = "Index" });
routes.MapRoute(
"user-activation",
"user/activate/{token}",
new { controller = "user", action = "activate" });
routes.MapRoute(
"password-reset",
"password/reset/{token}",
new { controller = "password", action = "reset" });
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional });
}
但是,当子域是应用程序的主机时,它会落在这个URL上: http://subdomain.mydomain.com/Projects/#/
但应该是 http://subdomain.mydomain.com/Projects#/
我无法弄清楚额外/即将到来的地方。任何关于如何修复的线索或方向都将受到赞赏 - 特别是考虑到其他一切都有效。我在调试器中查看了RouteTable并且没有看到任何冲突 - 但我可能没有正确查看表。
答案 0 :(得分:1)
第一条路线没有为动作指定任何地方,你应该让它显示
map.Routes(
"Projects",
"Projects/{action}",
new { controller="Projects", action="Index"}
);
...或
map.Routes(
"Projects",
"Projects",
new {controller="Projects", action = UrlParameter.Optional}
);
答案 1 :(得分:0)
以某种方式解决了这个问题。它可能是由于dns和iis配置问题,但没有令人满意的解释。