我尝试在RouteConfig.cs
中添加一条名为“ CustRoute”的路由,唯一出现的其他路由是默认路由。
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CustRoute",
url: "{cust}/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { cust = new CustConstraint() }
).RouteHandler = new CustMvcRouteHandler();
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
加载页面时,URL恢复为默认值。页面已加载,但我也无法连接到SignalR。
例如,如果我转到www.example.com/Cust/Home
,它将在加载页面时将URL更改为www.example.com/Home
。
答案 0 :(得分:3)
经过更多调查后,我修复了该问题,原因是AngularJS代码中的ngRoute
引起了问题,因为<base>
元素中的HTML <head>
标记未解决{{ 1}}。
ngRoute使用/Cust/
标签来路由URL(credit to this answer for the info)。
我通过将<base>
更改为<base href="@(Request.ApplicationPath)"/>
来解决了这个问题。