>백엔드 개발 >C++ >MVC 웹 API 2 URL 매개변수에서 점 문자를 처리하는 방법은 무엇입니까?

MVC 웹 API 2 URL 매개변수에서 점 문자를 처리하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-05 08:11:44244검색

How to Handle Dot Characters in MVC Web API 2 URL Parameters?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.