2009-03-29 14 views
1

Wenn Sie eine neue asp.net-Seite in VS 2008 erstellen und Code hinterher auswählen, erstellt sie auch die typische aspx.vb- oder aspx.cs-Datei, um damit zu gehen.ASP.NET Partial Page Klassennamen Best Practices

Am Anfang dieser Dateien benennt VS den Namen 'Partial Class' die Dateistruktur und/oder den Namen der aspx-Datei.

Die Frage: Gibt es dafür eine Best Practice? Kann ich nur einen einzelnen Klassennamen für alle Seiten in meiner Anwendung oder vielleicht ein einzelnes Verzeichnis verwenden, anstatt jedem einen eindeutigen Namen geben zu müssen?

Chris

+0

Vielen Dank für das Feedback/Kommentare. Sie waren sehr hilfreich. Wir gehen vielleicht wieder die Route von MVC, danke für den guten Rat! - Chris –

Antwort

-1

Nein, muss jede Seite eine andere Klasse sein (vorausgesetzt, sie sind verschiedene Dinge tatsächlich tun). Dies liegt daran, dass Sie wirklich eine Unterklasse von Page für jede Ihrer Seiten erstellen und dann die Standardlogik mit Ihren spezifischen Verhaltensweisen überschreiben. Jede Gruppe von Verhaltensweisen (jeder "Seitentyp") ist also eine andere Klasse.

1

Der Code-Behind ist spezifisch für die einzelne Seite. Damit wird das Aspx-Modell kaputt gemacht (siehe "Erben" oder ähnliches oben auf der Aspx-Seite).

Jede Aspx-Seite (in regulären ASP.NET) sollte eine separate Klasse haben.

Beachten Sie in ASP.NET MVC, dass eine einzelne Controller-Klasse häufig mehreren verwandten Ansichten zugeordnet ist (und dass die aspx/ascx in MVC nicht dazu neigen, Code-Behind zu haben).

-1

Es ist tatsächlich etwas üblich, die gleiche Klasse wie die "Code-Behind" für viele ASPX-Seiten zu verwenden. Wenn Sie feststellen, dass Sie viele Eins-zu-Eins-Aufgaben zwischen Basisseitenklassen und den zugehörigen ASPX-Dateien ausführen, ist es sinnvoll, beim Standardmodell zu bleiben. Aber wenn das für Ihre Anwendung nicht sinnvoll ist, dann hindert Sie nichts daran, alle Ihre ASPX Inherits Eigenschaften auf die gleiche Klasse zu verweisen.

Natürlich ist es immer gut, Regeln zu lernen, bevor man sie bricht. Das normale WebForms-Modell passt für die meisten Anwendungsfälle, insbesondere für Entwickler, die mit der ASP.NET-WebForms-Plattform beginnen oder dazwischenliegen. So stellen Sie sicher, dass Sie genug wissen, um zu wissen, was Sie bekommen, bevor Sie anfangen, Sachen zu ändern :)

1

In unserem Projekt, da die meisten der tatsächlichen Arbeit von Serversteuerelementen durchgeführt wird, um Seite von Server-Seite-Tags eingefügt, wir don Auf den meisten Seiten brauchen sie eigentlich keinen Codebehind. Daher haben ungefähr 18 unserer 22 Aspx-Seiten nicht einmal die Direktive <% Page%> auf ihnen. Standardseite Basisklasse von web.config-Datei festgelegt:

<pages masterPageFile="~/MasterPage.master" pageBaseType="OurProject.OurBasePageClass"> 
    </pages> 
3

Ich denke, der Grund für die „Teilklasse“ ist Visual Studio zu ermöglichen, alle Erklärungen in einer separaten Datei zu setzen, so dass sie nicht tun Wirf den Code-Behind auf. Zusätzlich zur aspx.vb/cs-Datei gibt es eine Designer.vb/cs-Datei, die alle Steuerdeklarationen enthält.

Werfen Sie einen Blick auf asp.net: partial classes and inheritance für ein bisschen mehr Informationen.