2017-12-02 1 views
1

저는 휴식 API 끝점을 만들기 위해 잠시 노력해 왔습니다. 그러나 테스트 할 때 "리소스를 찾을 수 없습니다."라고 표시됩니다. 웹 브라우저에서.리소스를 찾을 수 없습니다. - .net web api

이것은 내 컨트롤러 (일부)입니다. 메소드에 액세스하지 않습니다.

[System.Web.Http.RoutePrefix("api/ticket")] 
public class TicketController : ApiController 
{ 
    private readonly ITicketService _TicketService = new TicketService(); 

    [System.Web.Mvc.HttpGet] 
    [System.Web.Mvc.Route("Prepare/{number:string}")] 
    public TicketViewModel Prepare(string number) 
    { 
     ... 
    } 

} 

이 RouteConfig에서 내 등록 된 경로입니다 :

routes.MapRoute(
    name: "Default api with parameter", 
    url: "api/{controller}/{action}/{number}", 
    defaults: new { 
     controller = "Ticket", 
     action = "Prepare", 
     number = UrlParameter.Optional } 
); 
+0

. 속성에 사용중인 네임 스페이스를 살펴보십시오. RoutePrefix는 올바른 네임 스페이스를 사용하지만 다른 네임 스페이스는 사용하지 않습니다. – Nkosi

답변

0

당신은 MVC와 웹 API 경로 특성 및 경로 구성을 혼합하는가. 속성에 사용중인 네임 스페이스를 살펴보십시오.

RoutePrefix은 올바른 네임 스페이스를 사용하지만 다른 네임은 사용하지 않습니다.

업데이트 컨트롤러

using System.Web.Http; 

[RoutePrefix("api/ticket")] 
public class TicketController : ApiController { 
    private readonly ITicketService _TicketService = new TicketService(); 

    //GET api/ticket/Prepare/123456789 
    [HttpGet] 
    [Route("Prepare/{number}")] 
    public TicketViewModel Prepare(string number) { 
     //... 
    } 

    //... 
} 

는 문자열로 더 :string 경로 제약 조건이 기본입니다 있습니다.

구성의 경우 웹 라우팅은 일반적으로 특성 라우팅을 사용하고 규칙 기반 경로를 구성하는 WebApiConfig.Register 함수에서 찾을 수 있습니다.

public static class WebApiConfig { 
    public static void Register(HttpConfiguration config) { 
     // Attribute routing. 
     config.MapHttpAttributeRoutes(); 

     // Convention-based routing. 
     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

참조 당신은 MVC와 웹 API 경로 특성 및 경로 구성을 혼합하는 Attribute Routing in ASP.NET Web API 2

+0

WebApiConfig는 현재 작업중인 프로젝트에서 사용할 수 없습니다. RouteConfig 만 사용할 수 있습니다. 첫 번째 (?)를 만들고 후자를 삭제해야합니까? –

+0

@AbcXyz 답안에 제공된 링크를 검토하고 따라하십시오. – Nkosi

+0

mvc로 변경할 수 있습니까? RouteConfig가 이미 mvc 용으로 작성 되었기 때문에 더 쉬워 보입니다. –

관련 문제