ASP.Net MVC RouteData und Arrays

Wenn ich eine Aktion wie diese habe:

public ActionResult DoStuff(List<string> stuff)
{
   ...
   ViewData["stuff"] = stuff;
   ...
   return View();
}

Ich kann es mit der folgenden URL treffen:

http://mymvcapp.com/controller/DoStuff?stuff=hello&stuff=world&stuff=foo&stuff=bar

Aber in meiner ViewPage habe ich diesen Code:

<%= Html.ActionLink("click here", "DoMoreStuff", "MoreStuffController", new { stuff = ViewData["stuff"] }, null) %>

Leider ist MVC nicht schlau genug, um zu erkennen, dass die Aktion ein Array benötigt, und entrollt die Liste, um die richtige URL-Route zu bilden. Stattdessen führt es nur ein .ToString () für das Objekt aus, das nur den Datentyp im Fall einer Liste auflistet.

Gibt es eine Möglichkeit, mit Html.ActionLink eine korrekte URL zu generieren, wenn einer der Parameter der Zielaktion ein Array oder eine Liste ist?

- bearbeiten -

Wie Josh weiter unten ausführte, ist ViewData ["stuff"] nur ein Objekt. Ich habe versucht, das Problem zu vereinfachen, aber stattdessen einen Fehler verursacht, der nichts damit zu tun hat! Ich verwende tatsächlich eine dedizierte ViewPage <T>, sodass ich ein eng gekoppeltes typenbewusstes Modell habe. Der ActionLink sieht tatsächlich so aus:

<%= Html.ActionLink("click here", "DoMoreStuff", "MoreStuffController", new { stuff = ViewData.Model.Stuff }, null) %>

Wobei ViewData.Model.Stuff als Liste eingegeben wird

Antworten auf die Frage(6)

Ihre Antwort auf die Frage