Рекомендуемый подход для передачи списков значений в качестве QueryString являетсяASP.NET MVC Передача списков для RouteData 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 разберитесь для меня. К сожалению, 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
Я не уверен, что это плохо или нет, но он уверен, что выглядит ba д.
Итак, как вы передаете списки значений как RouteData в ASP.NET MVC. Есть ли способ, который я могу добавить в MVC, чтобы обработать int []? Или является основополагающей структурой данных на основе словарей show-stopper для простого переноса списков значений в ASP.NET MVC?