这可能是一个简单的路由问题,但在一个快速谷歌后,我没有点击我做错了路由。当呈现的操作链接返回为查询字符串时,如何修复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!