경로 선택 작동 방식에 관해 머리를 쓰는 데 문제가 있습니다. 서로 충돌하는 두 개의 라우트 속성 세트가 있습니다. 그들은웹 API 2 특성 라우팅 클래쉬
[Route("{apikey}/Parent/{parentID}/Children/ChildrenDataFormat")]
[Route("{apikey}/Parent/{parentID}/{dataSelectionTypeA}/{dataSelectionTypeB}")]
있습니까 첫 번째 경로의 마지막 두 부분은 하드 코딩 변경하지 않습니다. 두 번째 경로는 메서드 매개 변수에 바인딩됩니다.
두 번째 경로를 제거하면 첫 번째 경로는 정상적으로 작동하지만 그렇지 않은 경우 404가 표시됩니다. Route Matching에서 Guid 뒤에 "Parent"가 표시되고 "Children"및 "ChildrenDataFormat"이라는 사실을 무시하는 것으로 가정합니다. 대신에 3 가지를 따라 가야하므로 경로 2가 일치해야합니다.
이것이 올바른 가정이고이 문제를 해결할 수있는 확실한 수정 사항이 있습니까?
당신이 순서를 지정 봤어있는 캡처입니다 보여주는 간단한 예입니다? 최악의 경우, 두 번째 경로의 토큰이 모두 두 번째 인 경우'dataSelectionTypeA = "Children"및'dataSelectionTypeB = "ChildrenDataFormat"을 사용하여 두 번째 경로에 도달하게되므로 404를 얻을 수있는 방법을 이해할 수 없습니다. 문자열로 정의됩니다. –
예 저는 혼란 스럽습니다. 모든 변수는 Guid입니다. 나는 다른 컨트롤러와 동일한 컨트롤러에서 시도했지만 차이를 만드는 것처럼 보이지 않습니다. 두 경로 중 하나에서 ParentDifferent를 Parent로 변경하면 둘 다 작동합니다. – Oli