我想在我的 C#.Net 项目中同时托管 WCF 4 和 MVC 3。但是当我为 WCF 添加服务路径时,Html.ActionLink 开始为 MVC 应用程序创建错误的 url。我的路由表创建为:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
RouteTable.Routes.Add(new ServiceRoute("api1/projects", new WebServiceHostFactory(), typeof(Projects)));
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
上面的路由表为 WCF 和 MVC 应用程序创建了正确的访问路径,但Html.ActionLink
将编辑链接创建为
http://localhost:8000/api1/projects?action=Edit&controller=technology&id=2
代替
http://localhost:8000/technology/Edit/2
如果我省略以 开头的行RouteTable.Routes.Add
,ActionLink
则按预期工作(当然不是 WCF)。如何添加 WCF 路由并确保 actionlink 行为不会改变?