将值列表作为 QueryString 传递的推荐方法是
www.site.com/search?value=1&value=2&value=3&value=4
ASP.NET 处理得很好:
string value = QueryString.Get("value"); // returns "1,2,3,4"
但我想不出将这些值传递到 RouteData 的方法。显而易见的方法是添加
int[] value = {1,2,3,4};
进入 RouteData 并让超级智能 MVC 为我解决问题。不幸的是,在将数组传递给 RouteData 时,MVC 是转储的,它基本上调用 .ToString() 将 value=int[] 添加到我的 QueryString。
我尝试将值添加到 RouteValueDictionary (但作为字典无法处理:)
RouteValueDictionary dict = new RouteValueDictionary();
dict.Add("value","1");
dict.Add("value","2"); // Throws Exception (Keys must be unique)
我可以尝试像这样传递值:
www.site.com/search?value=1,2,3,4
但这被编码为 URL
www.site.com/search?value=1%2C2%2C3%2C4
我不确定这是否是一件坏事,但它确实看起来很糟糕。
那么,如何在 ASP.NET MVC 中将值列表作为 RouteData 传递。有什么方法可以添加到 MVC 以使其处理 int []?或者底层的基于字典的数据结构是一个显示停止器,可以轻松地将值列表传递给 ASP.NET MVC?