这是一个错误吗?小数属性未从 JSON 字符串 (.NET MVC) 反序列化

Die*_*ego 5 .net json deserialization asp.net-mvc-3

我有以下 .Net 类:

public class Product
{
    public int ID {get;set;}
    public String Name {get;set;}
    public Decimal Price {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

以及我的控制器中的一个操作:

[HttpPost]
public ActionResult AddProduct(Product product)
{
       // product.Price is zero!!
}
Run Code Online (Sandbox Code Playgroud)

请求中发布的 JSON 字符串AddProduct如下所示(通过 Fiddler2 抓取):

POST http://localhost:59656/Cart/AddProduct HTTP/1.1
Host: localhost:59656
Origin: http://localhost:59656
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko Chrome/17.0.963.79 Safari/535.11
Content-Type: application/json; charset=UTF-8
Accept: text/html, */*; q=0.01

{"Product":{"ID":1232, "Name":"Blu-Ray","Price":210}}
Run Code Online (Sandbox Code Playgroud)

为什么product.Price为零,而其他属性(ID 和名称)却正确水合?

Ale*_*ore 2

尝试发布:{"Product":{"ID":1232, "Name":"Blu-Ray","Price":210.00}}

我认为 MVC 不会从 int 转换/转换为十进制,因此 .00告诉它使用 float/double/decimal 进行水合。