我需要更改我的 MVC 项目中的所有 URL,到目前为止,这非常简单——我只需要更改 global.asax.cs 文件中所有适当的 routes.MapRoute() 中的 URL 字符串。
特别是其中一个环节表现得很顽固,不会改变,我敢肯定这是因为它是唯一一个有参数的环节。
有问题的 mapRoute 是:
routes.MapRoute(
"Mortgage.GetThisRate",
"mortgage-rates/mortgage-rate-details/{groupId}/{paymentType}/{mortgageValue}/{province}",
new { controller = "Mortgage", action = "GetThisRate", paymentType = UrlParameter.Optional, mortgageValue = UrlParameter.Optional, province = UrlParameter.Optional },
new { groupId = "\\d+", paymentType = "\\d+", mortgageValue = "\\d+", province = "\\d+" }
);
调用此 mapRoute 的按钮是:
@Html.OmnitureButton( Url.Action("GetThisRate", new { groupId = info.GroupId }), "<span class=\"payment\"></span><br />Get Details", new {@class = "orange"}, "events", "event3", "", "event3", "", "Mortgage LearnMore")
按下此按钮时,它请求的 URL 是: http: //www.apps.mysite.net/Mortgage/GetThisRate/8/48/200000/1 - 似乎完全忽略了其 mapRoute 方法中的 URL 字符串。
我尝试将此 mapRoute() 放在 global.asax.cs 的顶部,以确保它不会被更高优先级的路由忽略,但同样的问题仍然存在。
任何了解 MVC 路由的人都能够弄清楚这里出了什么问题?