2014-01-16 4 views
0

HotTowel을 사용하는 단일 페이지 응용 프로그램에서 작업 중입니다. 나는 breeze를 사용하여 POST 메소드를 호출하기 위해 아래의 링크를 참조했다. Breeze가 작동하지 않는 POST 메서드 호출

http://www.breezejs.com/breeze-labs/breezeajaxpostjs

다음은 내 코드입니다. 서버 측에서

:

public struct Customer { 
      public string CompanyName{ get; set; } 
      public string Phone { get; set; } 
     } 

    [HttpPost] 
    public IQueryable<Customer> SimilarCustomersPOST(Customer customer) 
    { 
     return repository.CustomersLikeThis(customer); 
    } 

바람을 사용하여 POST 메소드를 호출.

var query = breeze.EntityQuery.from('SimilarCustomersPOST') 
     .withParameters({ 
      $method: 'POST', 
      $encoding: 'JSON', 
      $data: { CompanyName: 'Hilo' , Phone: '808-234-5678' } 
     }); 

나는 오류가 아래에 무엇입니까 : 오류 : 요청 된 자원은 HTTP 메소드 'GET'를 지원하지 않습니다.

나는 다음과 같은 서버 코드를 쓰고 있어요 :

[System.Web.Http.AcceptVerbs("GET", "POST")] 
[HttpPost] 
     public IQueryable<Customer> SimilarCustomersPOST(Customer customer) 
     { 
      return repository.CustomersLikeThis(customer); 
     } 

그것은 호출되지만 가능 매개 변수가 null 값을 받고.

나는이 오류가 발생하는 이유를 알려주십시오.

미리 감사드립니다.

답변

0

[HttpPost][AcceptVerbs("GET")]으로 섞어도 어떤 문제가 발생할지 모르겠지만 문제 일 수 있습니다.

GET 메서드에서는 간단한 값 형식이 아닌 매개 변수 앞에 [FromUri] 특성을 사용해야하지만 POST 메서드에서는 매개 변수가 필요하지 않습니다. This blog post은 WebAPI 매개 변수 바인딩을 멋지게 설명합니다.