MVC Web API 2 URL 매개변수에서 점 문자를 수용하는 방법
MVC Web API 2 애플리케이션에서는 URL을 허용하는 것이 바람직할 수 있습니다. 특정 URL 형식과의 호환성을 위해 점 문자(".")를 포함하는 매개변수입니다. 그러나 기본적으로 프레임워크는 점을 경로 구분 기호로 간주하고 이러한 문자가 있으면 HTTP 404 오류를 생성합니다.
문제:
다음 URL은 ID가 "staff.33311"인 사람을 검색하면 404가 발생합니다. 오류:
http://somedomain.com/api/people/staff.33311
기본 경로 구성:
config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } );
이 경로 구성은 "id"가 단일 세그먼트이고 점이 허용되지 않는다고 가정합니다.
해결책:
URL 매개변수에 점을 허용하려면 URL에 슬래시를 추가하면 됩니다. 이는 매개 변수가 첫 번째 세그먼트를 넘어 계속된다는 신호를 ASP.NET MVC에 보냅니다.
http://somedomain.com/api/people/staff.33311/
슬래시를 추가하면 경로는 다음과 같습니다.
api/{controller}/{id}/{trailingSegment}
ASP.NET MVC는 이제 다음을 해석합니다. "id" 값으로 "staff.33311"
예
업데이트된 경로 구성을 사용하면 PeopleController의 다음 코드가 점 문자가 있는 URL을 성공적으로 처리합니다.
public IHttpActionResult GetPerson(string id) { var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower())); if (person == null) return NotFound(); return Ok(person); }
위 내용은 MVC 웹 API 2 URL 매개변수에서 점 문자를 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!