【发布时间】:2012-03-28 20:01:50
【问题描述】:
我有以下 .Net 类:
public class Product
{
public int ID {get;set;}
public String Name {get;set;}
public Decimal Price {get;set;}
}
我的控制器中的一个动作:
[HttpPost]
public ActionResult AddProduct(Product product)
{
// product.Price is zero!!
}
发送到AddProduct 的请求中的 JSON 字符串如下所示(通过 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}}
为什么product.Price 为零,而其他属性(ID 和名称)得到正确补水?
【问题讨论】:
-
检查 Request.Form 集合,查找“Price”条目并查看提供的值。
-
那个集合是空的。请求不是 url 编码的,是 JSON 编码的。我也发布了 HTTP 标头,所以这很清楚。
标签: .net json asp.net-mvc-3 deserialization