我正在开发 ASP.Net Web API 应用程序,我们正在为不同的客户端公开一个 REST API。我在获取用户的 JSON 文件并将它们转换为数据模型类时遇到问题。我的 JSON 如下所示。
{"engagementid":1,"clientname":"fsdfs","myno":"23,45","address1":"fsd","address2":"fsdfs","city":"fsdfs","zip":"fsdf","info":"fsdfs","country":"fsdfs","currency":"NOK"}
您可以看到我的“myno”是作为字符串发送的。但在我的服务器数据模型中,“myno”是一个 double 值。所以这里发生的情况是,当我将“myno”的值发送为“23,45”时,它被分配给我的模型的 MyNo 属性为 2345。这是错误的,因为您可以看到数字已因此而更改错误的转换。我只需要限制这种转换。我的意思是,如果他为“myno”属性发送一个字符串,我想向他发送一个错误。由于它在我的服务器数据模型中是双精度值,因此我只想接受来自客户端的数字作为该属性。这意味着,我想要这样。
{"myno":2345} //correct
{"myno":"2345"} //wrong. I want to send a error to user by saying, "We only accept Numbers for this value"
我该怎么做呢?
更新:如果我在服务器模型中使用 int,这个问题就会得到解决。我的意思是,如果客户端将字符串发送到在我的模型中表示为 int 的属性,那么它会给用户一个错误,即无法完成字符串到 int 的转换。