2014-10-08 3 views
0

웹 매개 변수 POST 메서드에 단일 매개 변수를 전달해야합니다.단일 매개 변수가있는 POST가 404 오류를 반환합니다.

$http({ method: 'POST', url: "customers/ProcessCustomer/" + customerId }) 
    .success(function (data) { 

    }); 

customerIdGuid입니다 : 다음

내 AJAX 호출입니다.

그리고 내 컨트롤러 :

[HttpPost] 
[Route("customers/ProcessCustomer")] 
public void ProcessCustomer(Guid id) 
{ 
    //do some stuff 
} 

하지만이 작업을 수행 할 때 단지 404 찾을 수 없음 오류가 발생합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+1

쿼리 문자열에 매개 변수를 추가하고 있습니다. POST가 작동하는 방식이 아닙니다. – Jonesopolis

+0

@Jonesy'customerId'는 쿼리 문자열의 일부가 아니며 경로의 일부입니다. – Stijn

+0

@ Stijn 네 말이 맞아. 웹 API는이를 POST 매개 변수로 변환 할 수 있습니다. 알았어, 고마워. – Jonesopolis

답변

1

속성 라우팅을 사용하고 있지만 경로에 id 매개 변수를 지정하지 않았습니다. 이를 대신 사용하십시오 :

[Route("customers/ProcessCustomer/{id}")] 

자세한 예제는 Attribute Routing in Web API 2을 참조하십시오.

0

동작 방법에 POST을 입력하면 데이터가 URL에 포함되지 않습니다. 대신 ayax 호출에서 설정 개체의 data 필드를 사용하십시오.

// I didn't recognize what library you're using for the AJAX call, so this is jQuery 
$.ajax('customer/ProcessCustomer', { 
    data: { id: customerId }, 
    success: function() { /* woohoo! */ } 
}); 
관련 문제