2014-11-12 4 views
-1

У меня есть запрос ajax на странице, который вызывает метод Web Api в моем приложении ASP.NET.Метод действия Web Api не вызывается

var request = $.ajax({ 
    url: "/api/Book/GetBook", 
    type: "GET",  
    contentType: "application/json; charset=utf-8", 
}); 
request.done(function (msg) { 
    alert(msg); 
}); 
request.fail(function (jqXHR, textStatus) { 
    alert("Request failed: " + textStatus); 
}); 

Источник метода API:

[HttpGet] 
    public IEnumerable<PageViewModel> GetBook() 
    { 
     return _librarian.GiveBook(_authProvider.GetUserAccount()); 
    } 

Во время отладки метод действия не вызывать, а textStatus является "Erorr".

+0

_erorr_ or _error_? –

ответ

0

Веб-API был разработан как RESTful, часть выполнения интерфейса RESTful имеет интерфейс, который идентифицирует ресурсы как операции конечных точек, а не CRUD. Например, у вас есть Book контроллера (что означает Book это ресурс), поэтому если вы хотите, чтобы тянуть конкретную книгу вниз URL, скорее всего, будут

/api/book/{bookId} 

Таблица маршрутизации по умолчанию достаточно умна, чтобы отобразить HTTP глагола к соответствующему действию в контроллере.

+0

Я изменил контроллер в соответствии с вашими рекомендациями http://pastebin.com/epzLxk64, а reqwest url - «/ api/BookApi», но все равно не работает. – Aminion

+0

@ Аминьон, какую ошибку вы возвращаете? Доходит ли он до API? "* не работает *" не очень полезно ... – James

+0

> _what ошибка вы получаете back_ -string "error". _ Доходит ли он до API_ - нет, это не так. Но! Если я наберу ссылку в браузере, она вернет мне некоторый файл (мои данные в json, я думаю), но IE говорит - bookapi не может скачать. – Aminion

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