Добавление IEnumerable к RouteValueDictionary - возможно ли это? - PullRequest
2 голосов
/ 16 августа 2011

Я использую ASP.Net MVC 2, и у меня небольшая проблема.Мне нужно создать URL-адрес из списка значений.

Используя следующий код:

RouteValueDictionary dic = new RouteValueDictionary();
dic.Add("mylist", new [] { 1, 2, 3 });
return helper.Action(dic["action"] as string, dic["controller"] as string, dic);

Я получаю URL-адрес /whatever/System.Int32[], что, очевидно, не то, что мне нужно.

Какой ASP.Net MVC 2 является предпочтительным способом создания такого URL?Я знаю, что связыватель моделей может обрабатывать списки, но как его сгенерировать?

Небольшое примечание о том, как это делается в MVC 3, также приветствуется (если метод отличается).

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Посмотрите, поможет ли вам этот предыдущий ответ (mvc 3 будет таким же - это тот же механизм маршрутизации, что и часть asp.net 4)

ASP.NET MVC - передать объект массива в качестве значения маршрута в Html.ActionLink (...)

0 голосов
/ 16 августа 2011

Вы всегда можете создать свой собственный класс List с переопределением ToString(), которое печатает, как вы хотите.Это кажется самым простым (но, возможно, самым «хакерским») способом сделать это.

public MyRouteList<T> : List<T>
{
     public override string ToString()
     {
          return string.Join("&", this.Select(x => "list=" + x.ToString()));
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...