Listy przekazywania ASP.NET MVC do RouteData QueryString
Zalecane podejście do przekazywania list wartości jako QueryString
www.site.com/search?value=1&value=2&value=3&value=4
ASP.NET dobrze sobie z tym radzi:
string value = QueryString.Get("value"); // returns "1,2,3,4"
Ale nie mogę wymyślić sposobu przekazania tych wartości do RouteData. Oczywistym podejściem byłoby dodanie
int[] value = {1,2,3,4};
do RouteData i mieć super inteligentne MVC sortować rzeczy dla mnie. Niestety MVC jest zrzutem, jeśli chodzi o przekazywanie tablic do RouteData, w zasadzie wywołuje .ToString () dodając wartość = int [] do mojego QueryString.
Próbowałem dodać wartości do RouteValueDictionary (ale bycie słownikiem nie poradzi sobie z tym :)
RouteValueDictionary dict = new RouteValueDictionary();
dict.Add("value","1");
dict.Add("value","2"); // Throws Exception (Keys must be unique)
Mógłbym spróbować przekazać takie wartości:
www.site.com/search?value=1,2,3,4
ale jest to kodowane do adresu URL jako
www.site.com/search?value=1%2C2%2C3%2C4
Nie jestem pewien, czy to jest złe, czy nie, ale na pewno wygląda źle.
Jak więc przekazywać listy wartości jako RouteData w ASP.NET MVC. Czy jest jakiś sposób, w jaki mogę dodać do MVC, aby obsługiwał int []? Czy też podstawowa struktura danych oparta na słowniku jest ogranicznikiem show dla łatwego przekazywania list wartości do ASP.NET MVC?