我有以下.NET類:這是一個錯誤?十進制屬性沒有得到來自JSON字符串反序列化(.NET MVC)
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!!
}
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}}
爲什麼product.Price
零,而其他道具erties(ID和名稱)正確地保溼?
檢查Request.Form集合,查找「Price」條目並查看提供的值是什麼。 – 2012-03-28 20:30:52
請參閱http://stackoverflow.com/questions/5698984/default-asp-net-mvc-3-model-binder-doesnt-bind-decimal-propeties。 – DMulligan 2012-03-28 20:40:11
該集合是空的。該請求不是網址編碼的,是JSon編碼的。我也發佈了HTTP頭,所以這很清楚。 – Diego 2012-03-28 20:44:32