2014-01-16 2 views
0

Я работаю над одностраничным приложением, используя HotTowel. Я ссылался ниже на ссылку для вызова метода POST с использованием бриза.Вызов метода POST с использованием Breeze не работает

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); 
     } 

Он вызов, но принятые параметры получение нулевых значений.

Пожалуйста, дайте мне знать, в чем причина, по которой я получаю эту ошибку.

Заранее спасибо.

ответ

0

Я не уверен, что происходит, когда вы смешиваете [HttpPost] с [AcceptVerbs("GET")], но это может быть проблемой.

Обратите внимание, что в методе GET вам необходимо использовать атрибут [FromUri] перед параметрами, которые не являются простыми типами значений, но вам это не нужно в методе POST. This blog post объясняет привязку параметров WebAPI.

Смежные вопросы