1

我想在我的 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.AddActionLink则按预期工作(当然不是 WCF)。如何添加 WCF 路由并确保 actionlink 行为不会改变?

4

1 回答 1

1

尝试将ServiceRoute注册放在MapRoute.

于 2011-11-17T16:29:20.840 回答