Передача списков ASP.NET MVC в RouteData QueryString
Рекомендуемый подход для передачи списков значений в виде 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"
Но я могу't выяснить способ передачи этих значений в RouteData. Очевидным подходом было бы добавить
int[] value = {1,2,3,4};
в RouteData и супер умный MVC разберитесь со мной. К сожалению, MVC является дампом, когда речь идет о передаче массивов в RouteData, он в основном вызывает .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
Я не уверен, если это плохо или нет, но это выглядит плохо.
Итак, как вы передаете списки значений как RouteData в ASP.NET MVC. Есть ли способ добавить в MVC, чтобы он обрабатывал int []? Или базовая структура данных на основе словаря является средством для упрощения передачи списков значений в ASP.NET MVC?