Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让asp.net mvc识别json中的小数?_C#_Asp.net Mvc_Json.net - Fatal编程技术网

C# 如何让asp.net mvc识别json中的小数?

C# 如何让asp.net mvc识别json中的小数?,c#,asp.net-mvc,json.net,C#,Asp.net Mvc,Json.net,在.net应用程序中,我使用System.Web.Mvc 5.2.3.0。我的客户端正在发布内容类型为“application/json”的json {From: "EUR", To: "USD", Rate: 0.00001} 当我的控制器收到此消息时 [HttpPut(), Route("/ExchangeRate/{exchkey}")] public HttpResponseMessage PutCurrencyExchange(string exchkey, [FromBody()]

在.net应用程序中,我使用System.Web.Mvc 5.2.3.0。我的客户端正在发布内容类型为“application/json”的json

{From: "EUR", To: "USD", Rate: 0.00001}
当我的控制器收到此消息时

[HttpPut(), Route("/ExchangeRate/{exchkey}")]
public HttpResponseMessage PutCurrencyExchange(string exchkey, [FromBody()] JObject jsonData)
 {...
作业对象的费率是字符串“1E-05”

我读过关于定制转换器的文章 和合同解析器


我发现了许多反序列化强类型对象的非常古老的示例。然而,我希望我只是错过了一个简单的配置更改,它将允许我的控制器的JObject正确地将十进制表示为十进制。注意:我认识到,如果客户机字符串化该值,它将正确解析该值。但是,我不能规定我的端点的使用者首先将值字符串化。

如果您能够将其更改为True,那么我会更幸运地使用包含单个参数的控制器操作,而不是从body执行该操作,因为定义了
(string-from,string-to,double-Rate)
因为与
[FromBody()]JObject jsonData
相比,参数更整洁,更易于维护。我感谢您的贡献。然而,这在我的应用程序中可能是一个问题,因为许多端点需要将发布的数据放在主体中。。。利率是双倍的,而不是一个字符串。手表窗口仅表示为1E-05。下游这被转换成一个字符串,我试图转换成十进制,但失败了。我的错。