これはおそらく単純なルーティングの問題ですが、簡単なグーグルの後、ルーティングで何が間違っているかについてはクリックしていません。
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}");
この順序で、SignalR js クライアントが /echo/ url に接続すると 404 が返されます。
デフォルトの MVC と SignalR ルーティングを交換すると、SignalR js クライアントは /echo/ url に接続し、SignalR は正しく機能しますが、ビューにレンダリングするとルートが正しく書き換えられません。
/echo?action=Index&controller=Home
明らかな何かが欠けていますか?エコーパスを除外するために ExclusionConstraints を見ていますが、これは手荒に思えます。確かにもっと簡単な方法がありますか?
また、次の質問のように正規表現制約を使用してみましたが、うまくいきません。
WCF ServiceRoute を使用した MVC2 ルーティング: Html.ActionLink が正しくないリンクをレンダリングする!