2009-06-25 13 views
4

Ich versuche gerade, ein bisschen von einer Firmenwebsite zu bereinigen, die ich hier geerbt habe. Ich habe es geschafft, die meisten Fehler auf der Website zu bereinigen, aber etwas ist noch hier oben.Namespace oder Klasse konnte nicht gefunden werden (ASP.NET WebSite "project")

Ich habe eine Masterpage, die diesen Code hat:

using System; 
using System.Data; 
using System.Configuration; 
using System.Collections; 
using System.ComponentModel; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 

public partial class MasterPage : System.Web.UI.MasterPage { 
    public lists m_listsClass = new lists(); 

(nein, es ist kein Tippfehler der S in Listen).

Jetzt in APP_CODE Ich habe eine Klasse lists.cs

using System; 
using System.Data; 
using System.Configuration; 
using System.Linq; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.HtmlControls; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Xml.Linq; 

/// <summary> 
/// Summary description for lists 
/// </summary> 
public class lists 
{ 
    public lists() 
    { 

Wenn ich versuche, die Website in Visual Studio 2008 ich diesen Fehler haben zu bauen:

Error 3 The type or namespace name 'lists' could not be found (are you missing a using directive or an assembly reference?) C:\Users\egirard\Documents\Visual Studio 2008\Projects\iFuzioncorp\iFuzioncorp\Masters\MasterPage.master.cs 23 12 iFuzioncorp 

bin ich etwas fehlt?

Auch ich sah ein seltsames Verhalten auf dem Server. Scheinbar nach IIS7 kompiliert es mit .net 2.0 (der Pool ist mit .net 2 konfiguriert), aber es gibt einige "using "Anweisungen, die Linq enthalten ... wie ist es möglich, die Seite zu kompilieren, wenn Linq nicht Teil der ist. netto-2 selbst?

Nur mit News Details über den Code selbst bearbeitet. überall gar keine Namespace.

+0

@Erick: Sie haben es vermisst allen zu sagen, dass dies eine Website "Projekt" ist. Dies sind keine Projekte und unterscheiden sich von jeder anderen Art von Code in Visual Studio. –

+0

@John ist ein Web-Anwendungsprojekt. – Erick

+0

@Erick: ok, dann bitte hör auf Website zu sagen. :-) Außerdem ist es sehr seltsam, dass es keine Namespaces gibt und dass Sie App_Code verwenden. Gibt es eine .csproj-Datei? –

Antwort

1

Schließlich verstand ich ganz in letzter Zeit, dass es eine Website und keine Webapplikation I Ich musste die Jungs hier fragen, um es zu bekommen ... Es ist also ganz normal, dass ich den Fehler hatte, den ich hatte.

1

den Namespace enthalten, unter denen listet calss

oder

definiert ist

definieren sowohl den Master Seiten- und Listen-Klasse unter dem gleichen Namensraum

+0

Es ist kein Namespace für die List-Klasse selbst definiert und die Masterseite – Erick

+0

erbt Ihre Masterseite von einer anderen Klasse? – Youssef

+0

wickeln Sie die Listen-Klasse unter einem Namespace und es in der Masterpage – Rony

0

Stellen Sie sicher, dass Sie auf Ihrer Masterpage eine # include-Anweisung für den Namespace haben, zu dem die lists-Klasse gehört (wenn sie sich in separaten Namespaces befindet, wird die Masterseite nicht automatisch darauf zugreifen).

Wie für die seltsame Server-Verhalten, .NET 2.0, 3.0 und 3.5 alle innerhalb von .NET 2.0-App-Pools in IIS ausgeführt werden. Es sieht zunächst komisch aus, aber man gewöhnt sich daran. Hier ist ein Link mit ein wenig mehr in die Tiefe explination:

The Way I See It: Where is ASP.NET 3.5 on IIS?

0

Um einen Typ zu verwenden, müssen Sie die Assembly verweisen, die sie definiert und umfassen den entsprechenden Namespace.

Wenn nur Namespaces eingeschlossen sind, hat dies keine Auswirkungen, wenn Sie keine Typen aus diesen Namespaces verwenden.

0

ist lists.cs in einem Namensraum verpackt? Wenn dies der Fall ist, müssen Sie den Namespace (yournamespace.lists) hinzufügen oder ihn in die Masterseite einfügen. Überprüfen Sie auch, ob Ihre MasterPage in einem Namespace

+0

Nur die Frage bearbeitet und nein Namespace überhaupt. – Erick

12

Hallo ist - ich hatte ein ähnliches Problem; Alle meine Namensräume und mein Erbe waren vorhanden. Dann bemerkte ich dann, dass die Build-Aktion der Klassendatei wurde auf „Inhalt“ nicht „Übersetzen“ (im Eigenschaftenfenster.

2

Für alles, was wert könnte eine Antwort da sein (möglicherweise nicht die rechte) nach vielen Monaten, ich glaube, ich beitragen sollte:

Es ist ein Fall, dass dies geschieht, wenn Sie eine Webseite platzieren innen ein anderes (dh in einem Unterordner). In diesem Fall ist der einzige gültige App_Code-Ordner der App_code-Ordner der äußeren Website. Dies ist der App_Code-Ordner direkt unter der Hauptwebsite.

Vielleicht (sagen Sie vielleicht) sollte es nicht notwendig sein, Ihre Website in eine Webanwendung umzuwandeln, wenn Sie die Klassendatei in den App_code-Ordner der ROOT-Website stellen.

0
  1. Ändern der Buildvorgang der App_Code Klasse zu kompilieren.

  2. reinigen und erstellen Sie das Projekt

Das ist für mich gearbeitet.

Verwandte Themen