728x90
1. [FromRoute] Guid id
- ASP.NET Core의 모델 바인딩에 **명시적으로 “이 값은 라우트에서 바인딩하라”**고 지시하는 방식
- 메서드 시그니처만 보고도 바인딩 출처(Route)가 확실하게 드러남
- 파라미터 이름이 라우트 템플릿({id})과 달라도 Name 속성으로 매핑 가능
- 예:
-
public Task<IActionResult> GetFile([FromRoute(Name = "id")] Guid fileId) - 장점: 유지보수 시 소스 파악이 쉬움, 이름 불일치 상황에서도 바인딩 가능
- 단점: 코드가 조금 더 장황함
2. 어노테이션 없이 Guid id
- 기본 모델 바인딩 규칙에 따라 바인딩
- 기본 규칙:
- 라우트 값에서 같은 이름을 가진 파라미터를 먼저 찾음
- 없으면 쿼리스트링, 폼 데이터, 바디 순서로 탐색
- 라우트 템플릿에 {id}가 있고, 파라미터 이름도 id라면 자동으로 매핑됨
- 예:
-
public Task<IActionResult> GetFile(Guid id) - 장점: 코드가 간결함
- 단점: 라우트와 파라미터 이름이 불일치하면 동작 안 함, 바인딩 출처가 한눈에 안 보임
결론
- 이름이 동일하고 간단한 API → 어노테이션 없이 Guid id 사용해도 문제 없음
- 이름이 다르거나 바인딩 출처를 명확히 하고 싶은 경우 → [FromRoute] 명시
728x90
'C#' 카테고리의 다른 글
| [C#] ASP.NET Core에서 클라이언트 데이터 전달 방법 (쿼리 스트링 vs 경로 변수) (0) | 2025.03.19 |
|---|---|
| [CSharp] C# Dictionary 딕셔너리 (0) | 2023.11.07 |
| [CSharp] C#의 record (0) | 2023.10.25 |
| [CSharp] c# #2 kioskProject - CRUD, ORM (0) | 2023.08.31 |
| [CSharp] c# #1 kioskProject - erd diagram (0) | 2023.08.31 |
댓글