繁体   English   中英

从HttpContext.request对象获取列表

[英]Get a list from an HttpContext.request object

我使用jQuery序列化了一个表单,并以这种格式将其发送到服务器:

Object{
transactionID : "10779"
itemList : [{itemName:"ball", quantity: 5}, {itemName:"stuff", quantity:10}]
}

在自定义ASP.NET modelbinder中,我这样做:

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
        };
    }

但是,由于IDE尚不知道request.Form.Get(“ itemList”)返回对象数组,因此foreach循环不起作用。 如何使以上代码起作用?

如果这样做,您只会从请求中获得一个char数组。 您需要将request.Form.Get("itemList")的内容反序列化为项目列表,然后可以遍历它们。 像这样:

var list = JsonConvert.DeserializeObject<List<Item>>(request.Form.Get("itemList"));

您还将首先创建Item类型的列表,但尝试在循环中添加TransactionItemQuantity类型的对象。

编辑:添加示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM