2011-09-01 39 views
1

這可能是一個簡單的路由問題,但在一個快速谷歌後,我沒有點擊我做錯了路由。當呈現的操作鏈接返回爲查詢字符串時,如何修復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!

回答

相關問題