기존 웹 프로젝트를 MVC로 변환하려고합니다. VS 2012에서 표준 MVC 프로젝트를 만들었습니다. 라우팅 구성이 추가되었습니다. 기존 프로젝트에 이미 WCF 서비스에서 사용 된 라우팅 항목이 포함되어 있습니다. 이제 경로는 다음과 같이 구성됩니다.MVC 경로가 서비스 경로와 충돌합니다.
// 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 관련 경로를 "평화롭게"즉 서로 영향을주지 않도록 만드는 방법을 알고 있습니까?
MapRoute을 맨 위에 놓으십시오.하지만 다음과 같이 컨트 리뷰 션에 4 번째 매개 변수를 추가하십시오 : 'new {controller = "regex-for -! = - AppServer"}' – Tallmaris
Tallmaris : 고마워,이 작품! 당신이 답을 써 주면 나는 그것을 표시 할 것입니다. – ElDog
나는이 솔루션에서 WcfContraint를 사용하여 끝냈다. http://stackoverflow.com/questions/7225887/wcf-web-api-service-routes-conflicting-with-regular-asp-net-mvc-routes-web-api –