传递值的列表作为查询字符串推荐的方法是ASP.NET MVC传递列表来的RouteData查询字符串
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
我不确定这是不是坏事,但它肯定看起来像ba d。
那么,如何在ASP.NET MVC中将RouteData的值列表传递为RouteData。有什么办法可以添加到MVC,使其处理int []?或者是基础的基于字典的数据结构是一种将值列表轻松传递给ASP.NET MVC的show-stopper?