Versuchen Sie immer, ein ViewModel zu verwenden, um Daten zwischen dem Controller und der Ansicht zu übergeben. Sie denken vielleicht, Sie brauchen keinen, Sie können Ihr Modell einfach weitergeben, aber plötzlich benötigen Sie ein Listenfeld mit mehreren Optionen zum Bearbeiten eines Modells oder zum Anzeigen einer Nachricht (keine Überprüfungsmeldung) und Sie beginnen Elemente zu den ViewData hinzuzufügen , mit magischen Strings als Schlüssel, wodurch die Pflege der App erschwert wird. Es gibt auch einige Sicherheitsprobleme, die Sie mit einem ViewModel lösen. Zum Beispiel:
%Vor%Ihre Ansicht ermöglicht es dem Benutzer, seinen Namen und seine E-Mail-Adresse zu ändern und in der Aktion zu posten
%Vor%Jemand könnte Ihr Formular manipulieren und ein neues Passwort und einen neuen Nutzernamen eingeben und Sie müssen sehr vorsichtig mit dem Verhalten von DefaultBinder sein. Nun, wenn Sie ein ViewModel wie:
verwenden %Vor%Das Problem ist weg.
Wenn es möglich ist, geben Sie Ihre Ansicht ein
Vermeiden Sie Logik in Ihren Ansichten
Bleib weg vom HttpContext
Holen Sie sich Steve Sandersons Pro ASP.NET MVC Framework
Debuggen Sie in den Quellcode
Stellen Sie sicher, dass Sie Ihre Parameter mit RedirectToAction
:
return RedirectToAction("DonateToCharity", new { id = 1000 });
Verwenden Sie nicht die Forms-Auflistung, verwenden Sie die Modellbindung.
Versuchen Sie nicht, ViewData zu verwenden, erstellen Sie ein ViewModel.
Wenn Sie eine Schleife oder ein if in Ihrer View haben, schreiben Sie einen HTML-Helfer.
Freundlichkeit,
Dan
Lassen Sie Ihren Controller nicht zu fett werden und tun Sie zu viel Arbeit. Ich habe in der Vergangenheit mehr als 1000 Line-Controller gesehen und es wird einfach ein absoluter Albtraum, um zu verstehen, was los ist.
Nutzen Sie Komponententests für Ihre Controller, um sicherzustellen, dass Abhängigkeiten unter Kontrolle gehalten werden und Ihr Code testbar ist.
Lassen Sie sich nicht dazu verleiten, jQuery und phantastisches clientscript das Verhalten Ihrer Anwendung definieren zu lassen, versuchen Sie es so sparsam wie möglich zu nutzen und lassen Sie es stattdessen Ihre Anwendung verbessern.
Verwenden Sie nach Möglichkeit Teilansichten und HTML-Helfer, um sicherzustellen, dass Ihre Ansichten nicht unhandlich und zu einem Alptraum werden.
Verwenden Sie wann immer möglich ein ViewModel.
Verwenden Sie ein Dependency-Injection-Framework, um Ihre Abhängigkeiten zu behandeln (MvcContrib hat mehrere Controller-Factories, obwohl es einfach genug ist, um Ihre eigenen zu rollen).
Tags und Links asp.net-mvc