Как исправить проблему маршрутизации с MVC3, когда визуализированные ссылки действий возвращаются в виде строк запросов? - PullRequest
1 голос
/ 01 сентября 2011

Вероятно, это просто проблема маршрутизации, но после быстрого поиска в Google я не понял, что я делаю неправильно с маршрутизацией.

При использовании SignalR маршрутизация MapConnection повреждает рендеринг маршрута MVC по умолчанию.

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });

// default MVC
routes.MapRoute("Default", // Route name
  "{controller}/{action}/{id}", // URL with parameters
    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
  );
// SignalR routing
routes.MapConnection<EventConnection>("echo", "echo/{*operation}");

В этом порядке я получаю 404, когда js-клиент SignalR подключается к / echo / url.

Если я поменяю местами маршрутизацию MVC и SignalR по умолчанию, js-клиент SignalR подключится к/ echo / url и SignalR работают правильно, но маршруты переписываются неправильно при отображении в представление, т.е.

/echo?action=Index&controller=Home

Я что-то упускаю из виду?Я смотрю на ExclusionConstraints, чтобы исключить путь эха, но это кажется неуклюжим, конечно, есть более простой способ?


Кроме того, я попытался использовать ограничение Regex, как в следующем вопросе, который не работает,

Маршрутизация MVC2 с помощью WCF ServiceRoute: Html.ActionLink отображает неверные ссылки!

1 Ответ

0 голосов
/ 01 сентября 2011

Я исправил это в коде SignalR, используя приведенный ниже ответ, и отправил запрос на извлечение.

Html.ActionLink создает неправильную ссылку при добавлении не-mvc-маршрута

https://github.com/SignalR/SignalR/pull/19

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