ASP.Net MVC RouteData i tablice
Jeśli mam taką akcję:
public ActionResult DoStuff(List<string> stuff)
{
...
ViewData["stuff"] = stuff;
...
return View();
}
Mogę go uderzyć następującym adresem URL:
http://mymvcapp.com/controller/DoStuff?stuff=hello&stuff=world&stuff=foo&stuff=bar
Ale w moim ViewPage mam ten kod:
<%= Html.ActionLink("click here", "DoMoreStuff", "MoreStuffController", new { stuff = ViewData["stuff"] }, null) %>
Niestety MVC nie jest wystarczająco inteligentny, aby rozpoznać, że akcja pobiera tablicę, i rozwija listę, aby utworzyć właściwą trasę URL. zamiast tego robi po prostu .ToString () na obiekcie, który po prostu wyświetla typ danych w przypadku Listy.
Czy istnieje sposób, aby Html.ActionLink wygenerował właściwy adres URL, gdy jeden z parametrów docelowych akcji jest tablicą lub listą?
-- edytować --
Jak zauważył Josh poniżej, ViewData ["stuff"] jest tylko obiektem. Próbowałem uprościć problem, ale zamiast tego spowodowałem niepowiązany błąd! W rzeczywistości używam dedykowanego ViewPage <T>, więc mam ściśle sprzężony model świadomy typu. ActionLink wygląda tak:
<%= Html.ActionLink("click here", "DoMoreStuff", "MoreStuffController", new { stuff = ViewData.Model.Stuff }, null) %>
Gdzie ViewData.Model.Stuff jest wpisany jako lista