Новый маршрут перезаписывает URL на маршрут по умолчанию, SignalR прекращает подключение - PullRequest
0 голосов
/ 23 ноября 2018

Я попытался добавить маршрут в 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.

1 Ответ

0 голосов
/ 30 ноября 2018

Я исправил проблему после еще одного исследования, это было ngRoute в коде AngularJS, которое вызвало проблему, потому что тег HTML <base> в элементе <head> не учитывал /Cust/ в моем URL.

ngRoute использует тег <base> для маршрутизации URL-адресов ( кредит на этот ответ для информации ).

Я исправил проблему, изменив <base href="@(Request.ApplicationPath)"/> на <base href="@(Request.ApplicationPath + "/" + custName)"/>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...