我正在尝试将现有的 Web 项目转换为 MVC。我在 VS 2012 中做了一个标准的 MVC 项目。它添加了路由配置。我现有的项目已经包含 WCF 服务使用的路由条目。所以现在路由配置如下:
// Was here before, used by services
routes.Add(new ServiceRoute("AppServer", new WebServiceHostFactory(), typeof(MyService)));
// the rest is added by vs to configure a default controller
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我意识到服务部分应该始终放在第一位,因为它更具限制性。如果放在最后,服务将不起作用。但现在的问题是
@Html.ActionLink("text", "MyAction", "MyController")
现在生成我类型的链接
http://localhost/AppServer?action=MyAction&controller=My
代替
http://localhost/My/MyAction
我所期望的。
有谁知道如何使服务路由和与 mvc 相关的路由“和平相处”,即不相互影响?