2013-03-28 2 views
1

MVN을 기반으로하는 DNN 6.2 서비스 프레임 워크에서 기본 Hello World 서비스가 실행됩니다. 경로는, 예에서 가져온 것입니다 : DNN 6.2 서비스 프레임 워크에서의 라우팅

routeManager.MapRoute("MyServices", "{controller}/{action}", new[] { "HelloWorldServices" }); 

내 행동이 ~/DesktopModules/MyServices/API/환영 /하여 HelloWorld로 이동

, 그것은하여 HelloWorld 기능과 작업을 호출합니다.

routeManager.MapRoute("MyServices", "{controller}/{action}/{userID}", new[] { "HelloWorldServices" }); 

내가 ~/DesktopModules/MyServices/API /로 이동 오신 것을 환영합니다/사용자가이 선택적 매개 변수가있는 사용자 함수를 호출 : 지금까지, 나는이 작업을 수행 할 수 있다는 것을 알아 내기 위해 관리했습니다 ID를 위해, 그리고 그것은 작동합니다. 하지만 이제는 ~/DesktopModules/MyServices/API/Welcome/locations라는 엔드 포인트를 만들고 싶습니다. 위치 ID를 사용할 수 있습니다. 난 그냥이 쓸 수 없습니다 :

routeManager.MapRoute("MyServices", "{controller}/{action}/{locationID}", new[] { "HelloWorldServices" }); 

또는

routeManager.MapRoute("MyServices", "{controller}/locations/{locationID}", new[] { "HelloWorldServices" }); 

그것은 그런 식으로 작동하지 않습니다. 첫 번째 (사용자 또는 위치)는 ID를 인식하고 두 번째는 그렇지 않은 ID를 인식합니다. 작동하지 않는 것이 무엇인지 파악할 수는 있지만 무엇이 효과가 있을지 전혀 모르고 많은 검색에도 불구하고 찾을 수 없었습니다. 또한 다음과 같은 몇 가지 예를 발견했습니다.

routeManager.MapRoute("Html", "default", "", new { controller = "Service", action = "GetTabs" }, new[] { "DotNetNuke.Modules.Html" }); 

그러나 나는 그 방법도 알 수 없습니다. 결국 ~ ~/DesktopModules/MyServices/API/Welcome/users/userid/locations/"를 원할 것입니다. 누군가가 내게 몇 가지 예를 줄 수 있다면, 그것은 대단히 감사하겠습니다!

업데이트 : 답변을 기반으로 MVC 라우팅을 찾았습니다. 나는 일반적으로 그것을 써야했다 실현, 이제 이러한 작업이 있습니다

{controller}/{action} 
{controller}/{action}/{id} 
{controller}/{action}/{id}/{secondaction} 
{controller}/{action}/{id}/{secondaction}/{secondid} 

"ID", "secondaction"및 "secondid"모든 선택적 문자열 매개 변수가 있습니다. 그래서 "users/userid/locations/locationid"를 가질 수 있습니다 ... "locations/locationid"부분은 "users"함수에서 처리됩니다.

답변

0

내 일반적인 권장 사항은 여기 이것은 일반적인 기본 ASP.NET MVC 경로 스타일

{controller}/{action}/{id} 

같은 것입니다 경로 맵을 사용하는 것입니다. 그런 다음 등 옵션 id 매개 변수 및 옵션 id 매개 변수와 위치 방법으로

이 당신에게 진정한 동적 경로를 제공하는 사용자의 방법이 있고,

+0

감사를 관리하는 데 많은 쉽게 할 수 - 시도해 봤는데, 처음에는 단 하나 (사용자 또는 위치)가 작동합니다. 그러나 필자는 필자의 함수에서 필자의 선택적 매개 변수가 여전히 "userID"및 "locationID"로 명명되었음을 알게되었습니다. 나는 둘 다 "이드"로 만들 때 둘 다 일했다. 그러나 나는 여전히 "users/(userid)/locations"와 같은 작업을 수행하는 방법을 찾고 있습니다. – MysteriousWhisper