KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have an application here with a mix of webform and mvc. I specify the routing as below routes.Add("AspxRoute", new Route("Upload/New", new WebFormRouteHandler<Page>("~/Uploads.aspx"))); routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); So that virtual path to "Upload/New" actually maps to an aspx webform page. But my problem is that Html.ActionLink("Test", "Controller", "Action") now renders /Upload/New?Controller=Controller&Action=Action Having looked at the MVC source code, I understand that it is because ActionLink calls to RouteCollection.GetVirtualPath(requestContext, routeName, mergedRouteValues) , where routeName is left to null. And somehow this defaults to use the AspxRoute route to construct the url. I tried to added another route before "AspxRoute", but it seems it always defaults to the non-mvc routehandler one. How does RouteCollection.GetVirtualPath behave when routeName is null? And why is it behaving this way for my case? How do I construct a correct url? Do I need to write a new Htmlhelper extension? Cheers
Tags (comma-separated)
Save Edits
Cancel