2011-01-16 12 views
0

Ich habe einige Probleme mit Parsing in einigen Daten zu einem PartialView. Wenn die Eigenschaften Wert in einem Wörterbuch Parsen und Keys in der Viewdata sind für ... Wie kann ich das Wörterbuch mit dem Viewdata fusionieren ... so meinen Wörterbuch Artikel mit den Tasten wie das kann ich zugreifen:asp.net mvc ViewData

ViewData["key"] as IList<T>; 

Statt

ViewData["Values] <- Which is a List that Contains my list. 

ich werde es wie folgt verwenden ... nicht nur anonym/magische String Namen wollen.

<%: Html.EditorFor(x => x.GroupId, "SimpleSelectList", new { Selected = 10}) %> 

Ich hoffe, so etwas zu tun. <%: Html.EditorFor (x => x.GroupId "SimpleSelectList", Html.AddViewData (Model.List))%>

Mit dieser Erweiterung Methode:

public static IDictionary AddViewData<T>(this HtmlHelper helper, T item) 
{ 
    var dictionary = new Dictionary<string, object>(); 
    dictionary.Add(typeof(T).Name, item); 
    return dictionary; 
} 

Dann werde ich immer wissen, was die SimpleSelectList-Vorlage suchen sollte ... und muss nicht noch einmal auf eine andere magische Zeichenfolge angewiesen sein ...

Oder wie machen Menschen das? Ich versuche nur, in die Codebasis zu kommen und wie Leute so etwas tun ...

Antwort

1

Persönlich würde ich ViewData atall in diesem Zusammenhang nicht verwenden.

Es ist viel sauberer und übersichtlicher, ein View-Modell zu haben, das Ihr Wörterbuch als Eigenschaft unterstützt. Sie können dieses Ansichtsmodell dann Ihrer Ansicht und Ihrer Teilansicht übergeben ... oder nur einen Teil des Ansichtsmodells Ihrer Teilansicht (abhängig davon, welche Daten Sie benötigen).

+0

Ja ... das war auch meine erste Idee. Aber wie würden Sie in diesem Szenario tun? Ich muss in 2 Dinge analysieren. Eine Liste des anzuzeigenden Objekts und einen ausgewählten Wert (eine ID). Wie Sie sehen können, zweifle ich daran, wie man es sauber strukturiert. – Syska