這可能是一個簡單的路由問題,但在一個快速谷歌後,我沒有點擊我做錯了路由。當呈現的操作鏈接返回爲查詢字符串時,如何修復MVC3的路由問題?
使用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客戶端連接到/回聲/ URL和正確SignalR功能,但是當渲染到視圖即
/echo?action=Index&controller=Home
上午我的路線是正確改寫錯過明顯的東西?我正在查看ExclusionConstraints以排除回聲路徑,但這看起來很沉重,肯定有一個更簡單的方法?
此外,我已經嘗試使用正則表達式約束像在下面的問題,這是行不通的。
MVC2 Routing with WCF ServiceRoute: Html.ActionLink rendering incorrect links!