webentwicklung-frage-antwort-db.com.de

Wo ist global.asax.cs in Visual Studio 2010

Ich habe in meinen installierten Vorlagen keinen Code-Behind-Code für die Global Application-Klasse mehr. Alles was ich habe ist Global.asax. Ich finde das Arbeiten mit Global.asax.cs angenehmer. 

  1. Warum sehe ich es nicht mehr?
  2. Wie kann ich Global.asax.cs neu erstellen?
20
naveen

Das liegt daran, dass Sie eine Website anstelle einer Webanwendung erstellt haben. Ich würde Ihnen empfehlen, ein vorkompliziertes Webanwendungsmodell zu verwenden. Wenn Sie jedoch eine Website verwenden müssen, können Sie Folgendes tun:

~/Global.asax:

<%@ Application CodeFile="Global.asax.cs" Inherits="AppName.MyApplication" Language="C#" %>

~/Global.asax.cs:

namespace AppName
{
    public partial class MyApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
        }
    }
}

Öffnen Sie jetzt Ihre Site in VS.

31
Darin Dimitrov

Yes @ Darin's Answer ist richtig, die cs/vb-Datei ist in der Webanwendung zu sehen, aber auf der Website können Sie keine separate cs/vb-Datei haben. 

Global.asax hat keine cs-Datei, aber Sie können Code schreiben ....

<script runat="server">

void Application_Start(object sender, EventArgs e) 
{
    // Code that runs on application startup
}

</script>
4
Muhammad Akhtar

Tatsächlich ist in der VS 2010-Standardwebsite kein Code hinter der Datei für Global.asax vorhanden. Was soll ich tun? Sie müssen ein Inline-Code-Modell wie folgt verwenden.

<%@ Application Language="C#" %>

<%@ Import Namespace="System.Web.Routing" %>

<script Language="C#" RunAt="server">

    void Application_Start(object sender, EventArgs e)
    {
    }

    void Application_End(object sender, EventArgs e)
    {
    }

    void Application_Error(object sender, EventArgs e)
    {
    }

    void Session_Start(object sender, EventArgs e)
    {
    }

    void Session_End(object sender, EventArgs e)
    {
    }
</script>
2
Nishant Kumar

Drücken Sie Strg + Umschalt + A und fügen Sie die globale Anwendungsklasse aus der Liste hinzu

1
sreekar

Präambel

Ich konnte Darins Antwort nicht ganz verstehen, da er sich bei der Benennung der globalen Klasse nicht mit Respekt an die Standards hält. Ich brauchte eine Lösung für VS2005, nicht 2010, aber ich bin sicher, dass diese Lösung trotzdem funktionieren wird.

Hinzufügen der CodeBehind für Global.asax-Datei in asp.net 2.0

Löschen Sie alle aktuellen Global.asax- und Global.cs-Dateien oder versuchen Sie, dies zu beheben.

Ok, gehen Sie in den Stammordner Ihres Projekts, klicken Sie mit der rechten Maustaste und wählen Sie Neues Element hinzufügen ...

Wählen Sie die globale Klasse aus und klicken Sie auf OK

Gehen Sie nun wieder zurück zum Stammordner, klicken Sie mit der rechten Maustaste und wählen Sie eine neue Klasse aus

Benennen Sie diese Klasse - Global.cs

Und ja - lassen Sie es im app_code-Ordner speichern. Sagen Sie NICHT NEIN und lassen Sie es im Stammordner ablegen. Muss in der app_code-Ordner sein.

Bearbeiten Sie die Datei "Global.asax" und schneiden Sie den Code innerhalb des <script>-Tags aus (Ausschneiden/Einfügen). Die Datei sollte so aussehen und das Inherits-Tag hinzufügen.

<%@ Application Language="C#" Inherits="Global" %>

<script runat="server">
  //do not put any code here
</script>

Wechseln Sie zur Datei "global.cs" in "app_code" und fügen Sie den aus der Datei "Global.asax" ausgeschnittenen Code ein.

Die global.cs-Datei in app_code sollte jetzt so aussehen ...

/// <summary>
/// Summary description for Global
/// </summary>

public class Global : System.Web.HttpApplication

{

       public Global()

       {

              //

              // TODO: Add constructor logic here

              //

       }



    void Application_Start(object sender, EventArgs e)

    {

        // Code that runs on application startup



    }



    void Application_End(object sender, EventArgs e)

    {

        //  Code that runs on application shutdown



    }



    void Application_Error(object sender, EventArgs e)

    {

        // Code that runs when an unhandled error occurs



    }



    void Session_Start(object sender, EventArgs e)

    {

        // Code that runs when a new session is started



    }



    void Session_End(object sender, EventArgs e)

    {

        // Code that runs when a session ends.

        // Note: The Session_End event is raised only when the sessionstate mode

        // is set to InProc in the Web.config file. If session mode is set to StateServer

        // or SQLServer, the event is not raised.



    }

}

Jetzt haben wir die Datei Global.asax und Code hinter der Datei Global.asax.cs mit einem Klassennamen. Auf diese Weise können wir an jeder beliebigen Stelle der Website auf die statische Variable zugreifen.

0
Fandango68