1

これはおそらく単純なルーティングの問題ですが、簡単なグーグルの後、ルーティングで何が間違っているかについてはクリックしていません。

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 が正しくないリンクをレンダリングする!

4

1 に答える 1

0

以下の回答を使用して SignalR コードでこれを修正し、プルリクエストを送信しました。

非 mvc ルートが追加されたときに Html.ActionLink が間違ったリンクを構築する

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

于 2011-09-01T01:51:21.317 に答える