我试图将一些数据从html页面发送到mvc控制器。它通过ajax作为FormData发送,并在控制器中作为FormCollection处理。其中一个元素是一个对象数组。如何在控制器中检索此数组?
client code================
var products = []
$('tr').each(function () {
var row = $(this);
var product = {};
product.Id = row.find('.id').val();
product.Id = row.find('.quantity').val();
products.push(product);
});
var data = new FormData();
data.append('PersonId', pid);
data.append('SubmitDate', sdate);
data.append('Products', products);
Server code=================
[HttpPost]
public ActionResult SalesData(FormCollection data)
{
String personId=data["PersonId"].ToString();
String submitDate=data["SubmitDate"].ToString();
//how to retrieve Products ??
}
任何帮助?
谢谢。
答案 0 :(得分:4)
尝试对产品进行字符串化并在服务器上反序列化。
data.append('Products', JSON.stringify(products));
在服务器上(假设具有id,value的产品类)使用JavaScriptSerializer
var serializer = new JavaScriptSerializer();
var productsStr = data["products"].ToString()
var deserializedProducts = serializer.Deserialize<List<Product>>(productsStr);