ASP0003: 경로 처리기와 모델 바인딩 특성을 사용하지 마세요

규칙 ID ASP0003
범주 사용
수정 사항이 주요 변경인지 여부 주요 변경 아님

원인

경로 처리기 대리자는 [Bind] 특성이 있는 매개 변수를 포함합니다.

규칙 설명

경로 처리기 엔드포인트는 [FromRoute], [FromBody] 등과 같은 MVC 특성의 하위 집합만 지원합니다. 지원되지 않는 특성은 무시되고 예기치 않은 바인딩 동작이 발생합니다. 예를 들어, 다음 코드는 분석기 경고를 생성합니다.

app.MapGet("/todos/{id}", ([Bind] int id) => new Todo { Id = id });

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 엔드포인트에서 허용되는 모델 바인딩 특성 중 하나를 사용하는지 확인합니다.

app.MapGet("/todos/{id}", ([FromRoute] int id) => new Todo { Id = id });

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시하지 않아야 합니다. 잘못된 모델 바인딩 설정으로 인해 런타임 시 매개 변수를 확인할 때 예기치 않은 동작이 발생할 수 있습니다.