6 Stimmen

ASP.NET Namespace ASP.NET Namensraum

In welchem Namespace befindet sich die Default.aspx-Seite, wenn ich ein ASP.NET-Projekt erstelle?

Und wie finde ich den Namespace einer anderen ASP.NET-Seite im Projekt?

Ich benutze VS2005. Zuerst habe ich eine leere Lösung erstellt und dann eine Webseite hinzugefügt.

Wenn ich mit der rechten Maustaste klicke und zum Menü 'Neue Webseite hinzufügen' gehe, finde ich die folgende Vorlage ASP.NET-Webseiten (1. Vorlage), die ich dann zu meiner Lösung hinzufüge.

Ich benutze C# und VS2005. Das passt in diesem Fall nicht zu VS2008.

0 Stimmen

Das hängt vom Projekttyp ab. Erstellen Sie eine neue "Webanwendung" oder erstellen Sie eine neue "Website"?

0 Stimmen

Das beantwortet die Frage immer noch nicht so richtig: Welchen Typ von Webseite hast du hinzugefügt? Es gibt zwei Arten, Webseiten und Webanwendungen (genauer kann ich nicht sein, ich habe das Jahr 2005 nicht auf diesem Gerät).

9voto

o.k.w Punkte 24819

Webseiten haben/unterstützen kein Namespace. Webanwendungen hingegen schon.

Um die Frage zu beantworten, da eine neue 'Webseite' erstellt wird, spielt der Namespace keine Rolle. Wie man auf andere WebForm Seitenklassen von einer Webform-Seite aus zugreift, habe ich noch keinen Grund dafür gefunden. Und ich denke nicht, dass es möglich ist (korrigiere mich, wenn ich falsch liege).

Auf jeden Fall gibt es Möglichkeiten, dies zu umgehen. Wenn Sie einige wiederverwendbare Business-/UI-/andere Logiken innerhalb einer Klasse einer der Webformen verwenden, verschieben Sie einfach diese Methoden in eine Datei mit dem Namen XXX.cs im Ordner App_Code. Ein Namespace ist nicht erforderlich und Sie können es innerhalb aller Webform-Klassen verwenden.

0 Stimmen

Ich muss .aspx-Seiten vererben.

3 Stimmen

Du meinst, dass du eine basepage.aspx mit einer Codebind-Klasse "basepage" hast. Und du hast eine newpage.aspx, die eine "newpage" -Klasse hat, die "basepage" erbt? Wenn das der Fall ist, lies dies: west-wind.com/WebLog/posts/3016.aspx im Abschnitt "Worauf man achten sollte". Hoffe, das hilft.

2voto

Schauen Sie sich den Code-Behind (Default.aspx.cs in Ihrem Fall) einer betreffenden Seite an. Dort sehen Sie Ihren Namespace. Aspx ist eine Ergänzung zur Klasse im Code-Behind, die mithilfe der teilweisen Klassendeklaration zusammengeführt wird.

Ich habe gerade ein neues Webanwendungsprojekt erstellt. So sieht der Code-Behind aus:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
    }
}

Also sehen Sie den Namespace "WebApplication1". Sie sehen ihn, oder?

HINZUGEFÜGT: Also habe ich erneut ein Webseitenprojekt erstellt, um das zu überprüfen. Okay, ich bestätige, dass ich dort keine Namespace-Deklarationen sehe. Nach etwas Recherche habe ich diesen Beitrag gefunden:

asp.net - Web Site vs. Web Application (Link korrigiert)

Das neue Kompilierungsmodell hat die Visual Studio Projektdatei selbst verworfen, hat asp.net zurück zum Konzept des "Kompilierens auf die Schnelle" gebracht, hat fast die Verwendung von Namespaces innerhalb einer Webseite eliminiert und hat radikal die Art und Weise verändert, wie UI-Vorlagen und der zugehörige Code-Behind angeordnet sind.

Vom Aussehen her wirft es einfach alle Klassen zusammen, sowohl Seitenklassen als auch Ihre benutzerdefinierten Logikklassen, die Sie normalerweise in den Ordner App_Code legen. Der Klassen-Viewer zeigt auch keine Seitenobjekte an, auch wenn ich sie in meine benutzerdefinierten Namespaces einbinde, zeigt er sie jedoch korrekt zusammen mit den Namespaces zur Deklaration im App_Code Ordner an. Ich nehme an, die Leute im VS-Team haben nicht beabsichtigt, dass Sie sich um Namespaces für Seitenklassen kümmern sollen.

0 Stimmen

In welchem Planeten lebst du? Es gibt keine Namespace-Deklarationen in einer asp.net-Code-Behind-Datei.

1 Stimmen

Veräppelst du mich? Gib mir eine Minute, ich werde dir ein Beispiel geben.

0 Stimmen

Ich benutze VS2005 und habe das in meinen Webprojekten noch nie gesehen.

2voto

user965160 Punkte 83

Versuchen Sie, eine Schnittstelle im App-Code-Verzeichnis zu definieren und Ihre Code-Behind-Datei die Schnittstelle implementieren zu lassen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X