使用jQuery我已经序列化了一个表单,并以这种格式将其发送到服务器:
Object{
transactionID : "10779"
itemList : [{itemName:"ball", quantity: 5}, {itemName:"stuff", quantity:10}]
}
在自定义ASP.NET模型绑定器中,我这样做:
HttpRequestBase request = controllerContext.HttpContext.Request;
List<Item> itemList = new List<Item>();
foreach (var item in request.Form.Get("itemList"))
{
itemList.Add(new TransactionItemQuantity
{
name = item.itemName
quantity = item.quantity
});
}
return new Transaction
{
transactionID = request.Form.Get("transactionTypeID"),
itemList = itemList
};
}
但是,foreach循环不起作用,因为IDE还不知道request.Form.Get(&#34; itemList&#34;)返回一个对象数组。如何使上述代码有效?
答案 0 :(得分:1)
如果你这样做,你只能从请求中获得一个char-array。您需要将request.Form.Get("itemList")
的内容反序列化为项目列表,然后您可以循环遍历它们。
像这样:
var list = JsonConvert.DeserializeObject<List<Item>>(request.Form.Get("itemList"));
您还首先创建类型为Item
的列表,但尝试在循环中添加TransactionItemQuantity
类型的对象。
编辑:添加了示例