0

웹 API 컨트롤러 라우팅에 문제가 있습니다. 나는 잘 작동하는 GET 메소드를 만들었지 만, 지금은 POST를 시도하고 라우팅이 안 좋은 것 같다. 전선이 있고 Angular2가 있습니다. 여기에서, 당신은 webapi에 전화를 볼 수 있습니다web api, 내 게시물 메서드로 라우팅 문제가 발생했습니다.

retour = this._http.post("http://localhost:5000/api/Particulier/add", _particulier, options) 
     .map(postResult) 
     .catch(this.handleError); 

을 여기에 내 웹 API 방법입니다 :

[Route("api/[controller]/")] 
public class ParticulierController : Controller 
{ 

    [...] 

    [HttpPost("add")] 
    public async Task<bool> Add([FromBody]Particulier particulier) 
    { 
     var result = await _particulierService.Create(particulier); 
     return result; 
    } 

    [...] 

} 

간단하지만 작동하지 않습니다. 크롬은 url이 존재하지 않는다고 말합니다. 나는 같은 컨트롤러에있는 메소드를 가지고 있으며 작동합니다.

나를 도와 줄 수 있습니까?

덕분에,

+0

계속 작동하지 않습니다. 예외가 있습니까? 요청에서 반환 된 상태 코드는 무엇입니까? – Nkosi

+0

사용중인 asp.net의 버전을 확인하십시오. 당신이 올린 코드는'asp.net-core'를위한 것이지만 당신은'asp.net-web-api'로 당신의 게시물에 태그를 붙였습니다. – Nkosi

+0

웹 API 템플릿이 포함 된 ASP.net 핵심 웹 응용 프로그램 (.net Core)입니다. framework 4.6.1. – jibhey

답변

0

Particulier 매개 변수에 대해 지정된없는 Null을 허용하지 않는 특성이 있기 때문에 귀하의 요청과 일치하지 않을 수 Add([FromBody]Particulier particulier) 방법. 또는 요청을 deserialize하는 것이 문제 일 수 있습니다.

누락 된 속성에 문제가없는 경우 Content-Type: text/json 헤더로 시도해 보는 것이 좋습니다.

retour = this._http({ 
     url: 'http://localhost:5000/api/Particulier/add', 
     method: "POST", 
     data: _particulier, 
     headers: {'Content-Type': 'text/json'} 
}).success(function(data, status, headers, config) { 
    // map post result (data var) 
}); 
+0

application/json을 사용하고 있지만 text/json이 더 잘 작동하지 않습니다. 내 Typescript 개체가 C# 개체와 완벽하게 일치해야한다면 정상입니다. 내 C# Particulier와 내 TS Particulier에는 몇 가지 동일한 매개 변수가 있지만 전부는 아닙니다. 문제가 있다고 생각 했습니까? – jibhey

+0

Chrome 개발자 도구를 통해 요청을 볼 수 있습니까? TS Particulier 객체가'Particulier'에 정의 된'int','DateTime'과 같은 null 허용되지 않는 속성 유형을 누락하지 않으면 문제가되지 않습니다. – Peter

+0

간단한 작업을 시도했습니다. 내 컨트롤러는 문자열 매개 변수 호출 "test"를 원하며 POST는 다음과 같은 간단한 객체를 POST합니다. { "test": "toto"}. 그러나 컨트롤러는 호출되지 않습니다. 나는 이해하지 못한다. 처음으로 웹 API를 사용하지만 MVC 응용 프로그램에서 Jquery를 사용하여 게시물 요청을 한 경우에는 아무런 문제가 없습니다. – jibhey

0

확인되었습니다. Angular 서비스가 잠잠해질 때까지 요청이 실행되지 않습니다.

모두에게 감사합니다.