0

좋아 너무 일반적인 경로는 다음과 같습니다경로에 다중 부분 동작이 가능합니까?

{controller}/{action}/{id} 

문제는 이것이 우리의 지불 컨트롤러의 기존 엔드 포인트는 예에이

{controller}/Somesortofgrouping/{action} 

처럼 보일 것입니다. 각각 것

payment/credit/sale 
payment/credit/refund 
payment/cash/sale 

그리고 메소드 이름 : 우리는 다음과 같은 엔드 포인트가있을 수 있습니다

이 가 그래서보다는 우리의 규칙을 보존하기 위해 WebApiConfig에 모든 엔드 포인트를 추가 할 필요, 이

CreditSale(); 
CreditRefund(); 
CashSale(); 
어떤 방식 으로든 템플릿을 사용하여이 시나리오에서 작업 할 수 있습니까?

답변

2

대신 설정에 모든 엔드 포인트를 추가, 당신은 우수한 AttributeRouting 패키지와 속성를 사용하여 컨트롤러/액션 자체에 구성 경로를 사용하여 고려할 수 있습니다.

일부 제한 사항은 MVC와 비교하여 웹 API (문서에 나열된대로)에 적용됩니다.

이 라이브러리를 사용한 후에는 별도의 라우트 구성을 유지하기 위해 돌아가는 것을 상상하기 어렵습니다.

+0

실제로,하지만 방법 uri 접두어를 허용하지 않는 것 같습니다. 따라서이 방법은 CreditRefund이지만, uri는 현금/환불입니다. 순간에 속성에 uri를 추가하면 깨집니다. – Sinaesthetic

+0

링크 된 라이브러리를 사용하고 있습니까? 액션 메소드의 이름을 원하는대로 지정하고 다음과 같은 속성을 추가 할 수 있습니다 :'[GET ("payment/cash/refund")]'(그리고 곧 작동하게되면'지불 '을 꺼내고 그것은 컨트롤러의'RoutePrefix' 속성으로 사용됩니다). http://attributerouting.net/#defining-routes의 예제도 참조하십시오. – marapet

+0

저는 분명합니다. 무슨 일인지 잘 모르겠지만 다른 모든 것은 RoutePrefix를 포함하여 잘 작동하는 것 같습니다. – Sinaesthetic