Pass-Wörterbuch routeValues zu ActionLink

Alle,

Griff zu bekommen ASP.NET MVC. So weit, So gut, aber dieses ist ein wenig Nüsse.

Ich habe ein view-Modell enthält ein dictionary von Attributen für einen hyperlink, der wie folgt verwendet:

Menü = Modell variable

Html.ActionLink(Html.Encode(menu.Name), Html.Encode(menu.Action), Html.Encode(menu.Controller), menu.Attributes, null)

Das problem ist die position " - Menü.Attribute" erwartet ein Objekt der form:

new  { Name = "Fred", Age=24 }

Was ich sagen kann, dieses anonyme Objekt wird tatsächlich in ein Wörterbuch per reflection sowieso, ABER Sie können sich nicht über ein Wörterbuch, um es in den ersten Platz!!!

Der generierte Html-Code für den link zeigt einfach das Wörterbuch geben.

Wie in aller Welt bekomme ich diese Runde? Der springende Punkt ist, dass seine Allgemeine und die Steuerung für das Menü festlegen.Attribute vorher....

Basiert auf einem Beitrag unten, ich habe versucht, die folgenden:

Html.ActionLink(Html.Encode(menu.Name), Html.Encode(menu.Action), Html.Encode(menu.Controller), new RouteValueDictionary(menu.Attributes), new Dictionary<string,object>())

aber dies immer noch nicht funktioniert (ich denke der code intern ruft die generische Methode, die Objekte?). Die oben (und meine ursprüngliche Lösung an einem Wörterbuch zum 4. paramater erzeugt eine HTML-ähnlich wie diese:

<a href="/EditRole?Comparer=System.Collections.Generic.GenericEqualityComparer%601%5BSystem.String%5D&amp;Count=1&amp;Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.String%5D&amp;Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.String%5D">EditDocumentRoles</a>

D. H. es ist die Verwendung von reflektion und arbeiten die Dinge völlig falsch...

InformationsquelleAutor Graham | 2010-03-13

Schreibe einen Kommentar