我正在创建一个Web Api(v2.0)方法,需要将十进制值作为参数。
如果我使用以下网址,则会收到404未找到错误:
http://localhost:4627/api/Product/Eligibility/10.5
但如果我对Int参数使用以下URL,则它可以工作:
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;
}
史蒂夫
答案 0 :(得分:37)
通过在网址末尾添加"/"
来实现它!
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;
}
史蒂夫
答案 1 :(得分:1)
我最近在Visual Studio 2015中使用Web API时遇到此问题。我通过在URL末尾添加?parameterName = decimalValue 解决了这个问题。在你的情况下可能是这样的:
http://localhost:4627/api/Product/Eligibility?amount=10.5
我希望可以提供帮助。
答案 2 :(得分:0)
在网址中传递小数有一个类似的问题,任何使用asp.net网页的人都是在交易后重定向和变量' amount'中有一个小数:
Response.Redirect(@Href("~/Thankyou", amount + "/"));