C# .NET 프로젝트에서 WCF 4와 MVC 3 모두를 호스팅하려고합니다. 그러나 WCF에 대한 서비스 경로를 추가하면 Html.ActionLink가 MVC 앱에 대한 잘못된 URL을 만들기 시작합니다. 경로 테이블 위MVC 응용 프로그램에서 ASP.NET WCF 및 Routes.Add를 사용하여 ActionLink 동작 수행
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 동작이 변경되지 않도록하려면 어떻게해야합니까?
가능한 중복 질문 : http://stackoverflow.com/questions/3570887/mvc2-routing-with-wcf-serviceroute-html-actionlink-rendering-incorrect-links – nemesv
예, 중복되었습니다. 위 질문은 http://stephenwalther.com/blog/archive/2008/08/07/asp-net-mvc-tip-30-create-custom-route-constraints.aspx에서 내 문제를 해결했습니다. –
관련 항목보기 [About-using-WCF-RESTful-services] (http://zayko.net/post/About-using-WCF-RESTful-services-together-with-ASPNET-MVC-projects.aspx) 및 [MVC 웹 사이트 내에서의 WCF 서비스 실행 방법] (http://blog.zoolutions.se/post/2010/10/30/How-do-I-run- WCF-service-inside-an-MVC- 웹 사이트 -OR-Do-you-make-good-of-Linq.aspx) –