在 ASP MVC3 项目中调用:-
<h2><a href="@Url.RouteUrl("_ScientificPrograms", new { idProgramaSeleccionado = @programa.Id, nombrePrograma = @programa.NombreProgramaUrl(), IdiomaSeleccion = idioma })">@programa.NombrePrograma(@idioma)</a></h2>
对应于 Global.asax.cs 文件中的注册路由:-
routes.MapRoute(
"_ScientificPrograms", // Route name
"{IdiomaSeleccion}/research/scientific-programmes/{idProgramaSeleccionado}/{nombrePrograma}/{idGrupoSeleccionado}/{nombreGrupo}",
new { controller = "Research", action = "ScientificProgrammes", IdiomaSeleccion = UrlParameter.Optional, idProgramaSeleccionado = UrlParameter.Optional, nombreGrupo = UrlParameter.Optional, idGrupoSeleccionado = UrlParameter.Optional, nombrePrograma = UrlParameter.Optional }
);
在我的本地机器上运行良好,生成如下网址:-
http://localhost/es/research/scientific-programmes/1/molecular-oncology
但是,在部署网站时,相同的调用只会产生
http://deployedsite/es/research/
虽然进入
http://deployedsite/es/research/scientific-programmes/1/molecular-oncology
确实正确解析了页面。
在我自己的测试主机和我的客户 QA 服务器上都观察到相同的行为。其他路由调用工作正常,但似乎这个有点特别。