ASP.net MVC passando listas para o RouteData QueryString

A abordagem recomendada para passar listas de valores como um QueryString é

www.site.com/search?value=1&value=2&value=3&value=4

O ASP.NET lida bem com isso:

string value = QueryString.Get("value"); // returns "1,2,3,4"

Mas não consigo descobrir uma maneira de passar esses valores para o RouteData. A abordagem óbvia seria adicionar

int[] value = {1,2,3,4};

para o RouteData e ter super-inteligente MVC resolver as coisas para mim. Infelizmente MVC é despejo quando se trata de passar matrizes em RouteData, ele basicamente chama .ToString () adicionando valor = int [] ao meu QueryString.

Eu tentei adicionar os valores para RouteValueDictionary (mas sendo um dicionário não pode lidar com isso :)

RouteValueDictionary dict = new RouteValueDictionary();
dict.Add("value","1");
dict.Add("value","2"); // Throws Exception (Keys must be unique)

Eu poderia tentar passar valores como este:

www.site.com/search?value=1,2,3,4

mas isso é codificado para o URL como

www.site.com/search?value=1%2C2%2C3%2C4

Eu não tenho certeza se isso é uma coisa ruim ou não, mas com certeza parece ruim.

Então, como você passa listas de valores como RouteData no ASP.NET MVC. Existe alguma maneira que eu possa adicionar ao MVC para fazê-lo lidar com um int []? Ou a estrutura de dados baseada em Dicionário subjacente é um show-stopper para passar listas de valores facilmente para o ASP.NET MVC?

questionAnswers(1)

yourAnswerToTheQuestion