在C#ASP.NET MVC中的get字符串中发送一组复杂对象

时间:2010-04-27 13:41:02

标签: c# asp.net-mvc binding arrays

我想在get请求字符串中发送一个对象数组。我知道这不是最佳解决方案,但我真的只想让它运行起来。

如果我有课,就像这样

public class Data
{
   public int a { get; set; }
   public int b { get; set; }
}

public class RequestViewData
{
   public IList<Data> MyData { get; set; }
}

我以为我可以将MVC路由绑定到像这样的Web请求

http://localhost:8080/Request?MyData[0].a=1&MyData[0].b=2&MyData[1].a=3&MyData[1].b=4

但所有这一切都是创建一个包含两个数据对象的数组,而不会填充值1,2,3或4.

有没有办法绑定复杂的对象数组?

2 个答案:

答案 0 :(得分:3)

假设您已在HomeController中实现了GetArrayTest方法

public class HomeController
{
    public ActionResult GetArrayTest (List<Data> data)

}

以下方法可行。

http://localhost:8080/Home/GetArrayTest?Data[0].a=1&Data[0].b=1&Data[1].a=2&Data[1].b=2&Data[2].a=3&Data[2].b=3

答案 1 :(得分:1)

我使用BinaryFormatter创建对象的二进制表示,通过查询字符串发送Base64编码,并在另一端重新组装。