Frage

Wenn mich nicht alles täuscht - die Konventionen von ASP.NET MVC scheint mir zu möchte folgendes für einen Controller Ansicht tun

.

Das ist zu Tag schaffe ich ‚Produkte‘ Verzeichnis, in dem ich meine ‚Index‘ Ansicht platzieren. Ich erstelle dann einen ‚Products‘ und erstellen auf sie einen ‚Index‘ Methode, die eine Ansicht zurückgibt. Wiederkehrende nur anzeigen () ohne Argumente werden die ‚Index.aspx‘ Seite, weil sie die gleichen Namen wie die Methode gehen und holen.

 public class ProductsController : Controller
    {
        public ActionResult Index()
        {
            return View();   // looks for Index.aspx in Products directory
        }
    }

Nun das ist gut so. Aber ich werde mit einer Milliarde Index.aspx Seiten am Ende, und ich bin einer dieser Menschen, die nie irgendwelche Dateien schließen, so dass ich verrückt am Ende dann gehen.

Alternativ kann ich erstellen Produkte / Products.aspx und mein Controller wie folgt ändern:

 public class ProductsController : Controller
    {
        public ActionResult Index()  // my default routing goes to Index (from sample project)
        {
            return View("Products");
        }
    }

Ich verstehe, wie das funktioniert, und dass ihre innerhalb des MVC-Entwurfsmusters völlig in Ordnung, dies zu tun. Es ist kein Hack oder so etwas.

Mein Problem (nach dem Hören von diesem PDC Video ) ist, dass Konvention über customizabiltity ist in MVC begünstigt (oder was auch immer der richtige Ausdruck ist).

Also ich frage mich, ob ich einen dritten Weg fehlt, oder wenn die Leute sind ganz gut mit 50 Index Registerkarten in Visual Studio?

War es hilfreich?

Lösung

die Standardaktion für jeden Controller Having haben den gleichen Namen vereinfacht nur das Routing (überprüfen global.asax). Auch es alle Dinge (Produkte, Bücher, Kontakte, ...) verwenden, um Aktionen / Ansichten mit demselben Namen für die gleiche Funktion, so wird der Code wird viel einfacher zu navigieren und zu verstehen. Diese Verwendung der Konvention ist besonders wichtig, wenn es als Teil eines Teams arbeitet, wie es im Einklang Code für Entwickler ermutigen wird.

Während bei einer anderen Frage sucht, lief ich über SimplyRestfulRouting im MVCContrib Projekt auf Codeplex. Dies könnte Ihnen einige Ideen.

Andere Tipps

Ich glaube, Sie sollten das Verfahren nach der Aktion einen Namen geben und den Namen der Ansicht (wenn es Sinn macht, und es wird nicht zwischen den Maßnahmen, die gleiche wie die Aktion gemeinsam). Sie sollten wahrscheinlich die Routing-Mechanismus ändern Index nicht wirklich ein beschreibender Name ist. Der Aktionsname sollte das darstellen, was es tut (wie jede Methode) und nicht fest einprogrammiert werden soll, um Index oder so ähnlich. Routing sollte stattdessen bearbeitet werden.

Es ist nur ein Muster. Verwenden Sie das Muster, sondern machen es für Sie arbeiten. Ich persönlich mag durch ihre Funktion meine Ansichten genannt haben, und ich habe nicht viele Index.aspx Seiten, weil ich nicht viele Indizes haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top