Für ViewData, anstatt Strings als Schlüssel verwenden, verwende ich enums. Ich habe momentan eine große Liste, auf die von überall zugegriffen werden kann. Einige Enums werden für mehrere Controller/View-Paare verwendet. Gibt es eine bessere Möglichkeit, diese Enums zu kategorisieren als nur eine ständig wachsende Liste?ASP.NET MVC: enums und ViewData [] Schlüssel
Ich mag nicht die hart codierten Zeichenfolgen, die für ViewData üblich sind. Enums geben große Intellisense. Ich dachte darüber nach, Enums nach Controller zu kategorisieren. Das funktioniert jedoch nicht so gut, da bestimmte Enum-Werte über Controller verteilt sein können und einen zentralen Ort benötigen.
Richtig, aber das funktioniert nicht, wenn mein Controller auf 2+ Modellklassen zugreift, um bestimmte Werte zu erhalten. Die Ansicht kann als nur eine Klasse eingegeben werden. Mit ViewData kann ich mehrere Werte aus mehreren Klassen übernehmen und sie an die Ansicht senden, die nur die Werte anzeigt. – 4thSpace
Das ViewModel sollte die Ansicht unterstützen, damit es alle Eigenschaften haben kann, die Sie benötigen, und so komplex sein, wie Sie es wollen. Wo die Daten herkommen, spielt keine Rolle - dafür ist der Controller verantwortlich. Jedes ViewModel kann auf eine bestimmte Ansicht zugeschnitten werden, sodass Sie ihm genau die Daten geben können, die es haben muss. Wenn Sie komplexe Daten an die View senden möchten, erstellen Sie einfach ein neues ViewModel mit diesen komplexen Klassen als einzelne Eigenschaften. Es besteht keine Notwendigkeit, das ViewData-Wörterbuch zu verwenden. –