UrlHelper.Action принимает анонимный объект, который внутренне преобразуется в RouteValueDictionary
:
Url.Action("Test", new { "MSFT" = "Microsoft Corporation", "APPL" = "Apple, Inc." })
Или непосредственно RouteValueDictionary
:
Url.Action("Test", new RouteValueDictionary() {{}})
И соответствует словарюключи от параметров действия.Если они совпадают, значение добавляется в строку запроса (или путь маршрута, в зависимости от правил маршрутизации Url).
Таким образом, если в вашем действии нет параметров, называемых MSFT или APPL, маршрутизация не будетРабота.Вам нужно сериализовать словарь (или любой другой способ передачи данных в виде строки) и передать его в виде закодированной строки (с HttpServerUtility.UrlEncode
) в UrlHelper
:
Url.Action("Test", new { "stocks", serializedDictionary });
Затем в действии вам придется снова извлечь данные из сериализованного словаря.