Ich weiß, dass Ansichtsmodell zum Rendern einer Ansicht verwendet werden kann, aber wenn eine Seite andere Modelle benötigt, wie kann ich sie an die Ansicht übergeben? Und wie benutze ich sie?ASP.NET MVC2: Wie man eine Ansicht rendert, wenn es mehrere verschiedene Modelle hat
Antwort
Wenn Sie mehrere Modelle übergeben müssen, erstellen Sie ein allumfassendes Modell, bei dem die kleineren Modelle als Eigenschaften hängen bleiben.
Angenommen, Sie werden eine Seite zum Verwalten von Benutzergruppen für Ihre App anzeigen. Sie müssten wahrscheinlich eine IEnumerable<UserDisplayModel>
und auch eine IEnumerable<GroupDisplayModel>
an die Ansicht übergeben. Erstellen Sie ein neues Display Modell wie folgt aus:
class GroupManagementDisplayModel
{
public IEnumerable<UserDisplayModel> Users { get; set; }
public IEnumerable<GroupDisplayModel> Groups { get; set; }
}
Pass Instanzen dieses Modells zu Ihrer Ansicht statt.
Wenn Sie feststellen, dass Sie viel dies und tun wollen, dass Sie für die Erstellung von vielen kleinen Arten nicht viel Sorgfalt tun, dann können Sie .NET 4 des dynamic
-Typ:
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
In Ihrer Aktion Übergeben Sie einen anonymen Typ an Ihre Sicht:
Die Referenz in Ihrer Ansicht, wie Sie es sonst tun würden.
Sie verlieren Intellisense und starke Typisierung auf diese Weise, aber wenn Sie Ihre Ansichten sind Kompilieren (die Ihre CSPROJ Datei manuell bearbeitet werden muss und macht den Build viel langsamer), dann haben Sie keine Zeit Überprüfung kompilieren auf Ansichten sowieso.
Danke für Ihre Zeit ~ – user469652
Kein Problem. Persönlich verwende ich diesen Ansatz nicht, da ich Intellisense mag, und Resharper macht das Generieren kleiner Typen schnell und einfach, aber ich habe diese Antwort hier der Vollständigkeit halber eingefügt. –
- 1. Mehrere Modelle in einer Ansicht ASP.Net
- 2. ASP.NET MVC: Wie Kompilierungsfehler signalisieren, wenn eine Ansicht Fehler hat?
- 3. wie C# Ansicht Modelle
- 4. Wie verwendet man mehrere Modelle in einer Ansicht django?
- 5. Wie man android in asp.net mvc2 controller
- 6. ASP.NET MVC2: Wie man eine Datei von einem Controller zurückgibt?
- 7. ASP.NET MVC: Wie man eine Teilansicht auf alle außer einer Ansicht rendert?
- 8. Eine weitere einfache ASP.NET MVC2 Frage - Viewmodels
- 9. Wie eine Liste in asp.net-MVC2
- 10. Wie man verschiedene Partialtöne abhängig vom aktuellen Gebietsschema rendert
- 11. Wie man jede Ansicht rendert ohne in Schienen zu laden?
- 12. Mehrere Modelle in einer einzigen Ansicht anzeigen
- 13. Wie man ein Jinja2-Makro von einer aufrufbaren Ansicht rendert?
- 14. Asp.net MVC gleiche Ansicht Name, verschiedene Wege
- 15. Wie man Bild mit OpenGL ES rendert?
- 16. Knockout-Bindung mehrere Ansicht Modelle in einer Seite von ID
- 17. Wie übergebe ich mehrere Modelle zu Teilansichten in ASP.NET MVC
- 18. ASP.Net MVC2 DropDownListFor
- 19. ASP.NET MVC2: ViewModel für eine polymorphe Klasse
- 20. ASP.NET MVC - verschiedene Modelle für Masterseite und Ansichtsseite
- 21. Wie man eine Schriftart lädt und es mit TextGeometry rendert
- 22. ASP.NET MVC2 - Rückkehr zur vorherigen Ansicht von einer Controller-Aktion
- 23. ASP.NET MVC2 CrAzY Zeichen in der Ansicht Ausgabe - WTF
- 24. Korrekte Fehlerbehandlung in ASP.NET MVC2
- 25. Wie rendert man ein Django-Formular in einer Ansicht?
- 26. Wie man Google map in die Grails-Ansicht rendert
- 27. Leistungsüberwachung für ASP.NET MVC2?
- 28. Wie eingebettete Ansicht Modelle zu verwenden
- 29. Wie mehrere Modelle in ASP.NET MVC angezeigt werden?
- 30. wie man mehrere Projekte hat wie eine App funktioniert
Ja, das wirst du machen wollen. Dann haben Sie Zugriff auf intellisense, damit Sie auswählen können, welche Attribute Sie verwenden möchten. –