Пропустить десятичное значение в URL-адресе WebAPI 2
Я создаю метод Web Api (v2.0), который должен принимать десятичное значение в качестве его параметра.
Я получаю 404 не найденную ошибку, если я использую следующий URL-адрес:
http://localhost:4627/api/Product/Eligibility/10.5
Но он работает, если я использую следующий URL-адрес для параметра Int:
Http://localhost:4627/api/Product/Eligibility/10
Это два соответствующих метода в api:
// GET api/Product/Eligibility/10.0
[Route("api/Product/Eligibility/{amount:decimal}")]
public decimal GetEligibiilty(decimal amount)
{
return amount;
}
// GET api/Product/Eligibility/10
[Route("api/Product/Eligibility/{amount:int}")]
public decimal GetEligibiilty(int amount)
{
return amount;
}
Стив
Ответы
Ответ 1
Получил его, добавив "/"
в конец URL-адреса!
http://localhost:4627/api/Product/Eligibility/10.5/
Найти этот метод:
// GET api/Product/Eligibility/10.5/
[Route("api/Product/Eligibility/{amount:decimal}/")]
public decimal GetEligibiilty(decimal amount)
{
return amount;
}
Стив
Ответ 2
Недавно я столкнулся с этой проблемой при работе с веб-API в Visual Studio 2015. Я решил проблему, добавив ? parameterName = decimalValue в конце URL-адреса. В вашем случае может быть что-то похожее на это:
http://localhost:4627/api/Product/Eligibility?amount=10.5
Надеюсь, это поможет.
Ответ 3
имел аналогичную проблему с передачей десятичного числа в URL-адресе, любой, кто использует веб-страницы asp.net здесь, является решением при перенаправлении после транзакции, а переменная 'amount' имеет десятичное значение в ней:
Response.Redirect(@Href("~/Thankyou", amount + "/"));