У меня есть следующая структура моего контроллера WEB API:
public class MyController : ApiController
{
[System.Web.Http.HttpPost]
public bool Method1([FromBody] int id, [FromBody] string token, [FromBody] string deviceID, [FromBody] string username)
{
bool returnValue = false;
//do code business logic here
return returnValue;
}
[System.Web.Http.HttpPost]
public bool Method2([FromBody] int id, [FromBody] string token)
{
bool returnValue = false;
//do code business logic here
return returnValue;
}
}
Когда я пытаюсь создать RESTFUL Web API через HTTP для Method1
или Method2
, я получаю 500 Internal Server Error.
Если я удалю входные параметры из любого метода, я смогу создать веб-API без ошибок.
Я провел модульное тестирование контроллера с помощью метода тестирования .NET, и логика не генерирует исключение.
Я добавил дополнительный метод с именем Get
без параметров и смог использовать службу без каких-либо ошибок.
Вот фрагмент кода, в котором я пытаюсь использовать веб-API в JavaScript с помощью jQuery:
var uri = "http://127.0.0.1/MyWebApi/api/mycontroller/method2";
var myObject =
{
id: $('#id').val(),
token: $('#token').val()
};
$.post(uri, JSON.stringify(myObject)).done(function (data) {
$('#result').text(data);
})
.fail(function (jqXHR, textStatus, err) {
$('#result').text('Error: ' + err);
});
Что заставляет меня получать 500 Internal Server Error в начальной структуре контроллера API?