asp.net mvc中的路由问题

asp.net mvc中的路由问题,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有 在Global.asax.cs中 并放置在默认路线下方。 单击链接时调用上述路由 routes.MapRoute("BuildingCompanyProject", "BuildingCompany/{projectId}/BuildingProject", new { controller = "BuildingProject", action = "Index", projectId = "" }); 但单击url后,url将映射到默认路由。 我应该如何实现这一点。当默认路由可

我有

在Global.asax.cs中
并放置在默认路线下方。
单击链接时调用上述路由

 routes.MapRoute("BuildingCompanyProject", "BuildingCompany/{projectId}/BuildingProject", new { controller = "BuildingProject", action = "Index", projectId = "" });

但单击url后,url将映射到默认路由。
我应该如何实现这一点。

当默认路由可以解析您的自定义路由(就像您的情况一样)时,您应该将自定义路由置于默认路由之上


根据您的评论,您说您有另一个URL“/BuildingProject”,该URL应通过默认路由进行解析


然后您应该有3条路由:首先是要解决“/BuildingProject”的路由,然后是您在问题中提到的自定义路由,最后是默认路由。

将自定义路由移到默认路由之上。请记住,您的url将首先匹配默认路由

,但问题是我有另一个类似“/builgingproject”的url,它应该映射到默认路由,但在将custon路由置于默认路由之上时,此url映射到此自定义路由。这显示错误。@Andrew-向我们显示您的两个url,它们的外观。不是视图中的代码,而是它们在页面中的呈现方式,我们将尽力提供帮助。(您可以使用此信息编辑您的问题)第一个Url是“/BuildingProject”(此Url应映射为默认启用),第二个Url是“BuildingCompany/{projectId}/BuildingProject”(此Url应映射为自定义Url)。
<a title="Go toCompany" style="background: none!important" href='<%= Url.RouteUrl("BuildingCompanyProject",new {controller="BuildingProject" , action="Index" , projectId=item.Id})%>'>
                beheer bedrijf</a>