Können zwei ASPX-Seiten Erben die gleichen code-behind-Klasse?
Ich bin gerade erst lernen ASP.NET. Von dem was ich verstehe, ASP.NET unterscheidet sich von old-school-ASP in der Logik-code für eine Seite existiert als separate Datei sein, statt eingebettet in die ASP-Seite. Also, wenn ein Benutzer eine Seite wie Warenkorb.aspx liest der server die Richtlinie an der Spitze ...
<%@ Page Title="" Language="C#" MasterPageFile="~/Styles/Site.Master" AutoEventWireup="true"
CodeBehind="MyShoppingCart.aspx.cs" Inherits="TailspinSpyWorks.MyShoppingCart" %>
Dieser teilt dem server mit, welche Datei und welche Klasse in der Datei ist die mit der Seite verbunden. Die code-behind-Klasse hat auch member-Variablen entsprechen, die für jedes Steuerelement auf der Seite, und bieten eine Möglichkeit code in der code-behind-Datei zum Bearbeiten der Steuerelemente.
Ersten, verstehe ich das richtig?
Zweiten, könnte eine Website eingerichtet werden, mit zwei separaten ASPX-Seiten mit dem gleichen Namen kontrolliert, die hatten beide eine Richtlinie zeigen auf die gleiche Datei und Klasse? Würden Sie auch dies tun wollen? Beide Seiten hätten die gleichen Funktionen, aber ein anderes layout. Ich dachte, dies könnte ein Weg, um erstellen Sie separate "desktop" und "mobile" Versionen einer Seite, mit der sich Inhalte duplizieren, in der code-behind-Dateien.
Denke ich letztlich, was ich Fragen, ist, ob es einen Weg, Sie zu definieren eine abstrakte Seite? Sagen wir erstellen eine abstrakte Seite, die definition, die sagt, die eine Seite haben muß kontrolliert "cart_list", "total_lbl", aber dann in der Lage sein, mehrere Seiten, dass Erben von dieser abstrakten Seite?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, zwei Seiten Erben von der gleichen Klasse. Wie kann es Erben von
Page
Klasse direkt und haben noch nicht einmal ein Zusammenhang .cs-Datei (nützlich, wenn Sie eine Seite haben, die nicht statisch ist, sondern die nicht benötigten Ereignisse oder etwas, das erfordert vielleicht eine code-behind-Klasse).In der Praxis, ich glaube nicht, dass es eine gute Idee, mehrere Erben ASP.NET Seiten aus der gleichen Klasse direkt. Dies ist nicht etwas gemeinsames, also:
Wenn mehrere Seiten Ihrer website teilen die gleiche Logik,
Page
Klasse. Sie erhalten eine umfangreiche und leicht verständliche Lösung.Classic ASP und ASP.NET unterscheiden sich in einer Vielzahl von Möglichkeiten, die primäre Weise, die das klassische ASP-Seiten (zum größten Teil) eine Verfahrens -, Skript-basiert, nicht verwalteten code in der Erwägung, dass ASP.NET Seiten zusammengestellt, verwaltet und event-driven. In der Regel ASP.NET Seiten trennen den markup-Code und der server-side code in zwei separaten Dateien, aber dies ist nicht eine Notwendigkeit. Es ist durchaus möglich, legen Sie die server-side-code im .aspx Seite in einem <script runat="server"> block.
Ja, Sie verstehen das richtig.
Ja, Sie könnten dies tun.
Wahrscheinlich nicht. In der Tat, auch wenn es zwei separate ASPX-Seiten, die beide Erben von der gleichen Basis-Seite-es gibt nichts, die Sie zwingt, den gleichen Satz von Steuerelementen. In der Tat, könnten Sie haben verschiedene Steuerelemente und die Seite gerendert wird, ohne Fehler. (Wenn Sie versuchen, Zugriff auf ein Steuerelement im code-behind, der nicht vorhanden ist in einer der Seiten erhalten Sie einen Laufzeitfehler.)
Gibt es nicht (meines Wissens) einen Weg, dies zu erreichen. Was könnte nahe kommen, aber ist mit einer base Seite Klasse, das ist eine gute Praxis zu verwenden, auch wenn Sie nicht über dieses spezielle Szenario auf der hand. Weitere Informationen zum erstellen und verwenden von base-Seite-Klassen finden Sie unter: Über eine eigene Basis-Klasse für Ihre ASP.NET Seiten, die " Code-Behind-Klassen.
Frohes Programmieren!
Möchten Sie vielleicht zu prüfen, diese aus, wenn Sie mit .NET 4.0. Es beschreibt
- Anfrage.Browser.IsMobileDevice
undRequest.Browser.MobileDeviceModel
.Könnte man eine gewisse Logik in der code-behind -, oder die ASPX-mark-up, um zu erkennen, wenn Sie auf einem mobilen Gerät. Das wird es ermöglichen, dass Sie alle den code in einer Datei, aber wählen können, welche HTML-Elemente anzeigen, etc.
Ja, und Nein.
Können Sie die Nutzung der gleichen Klasse für verschiedene Seiten, jedoch ist die Bindung zwischen der Seite steuert und die Variablen in der Klasse ist nicht so streng.
Den Steuerelement-Referenzen werden einfach zugewiesen werden, um die Variablen, wenn Sie existieren, und Sie haben einen passenden Typ, Sie können Sie aber nicht alle Einschränkungen, die Seite hat zu enthalten bestimmte Steuerelemente. Sie können jedoch überprüfen, ob die Variablen zugewiesen wurde, oder wenn Sie null Referenzen die ersten, die Sie auch im code.
Ich verwendet habe, die der gleichen Klasse für verschiedene Seiten an einigen seltenen Fällen, aber es ist nicht gängige Praxis. In der Regel gibt es wenig Gewinn in der, dies zu tun, und wenn Sie wollen, um die Wiederverwendung von code in den Seiten, man kann es in einer Klasse-Datei, und verwenden Sie es aus den separaten Seiten.