web-dev-qa-db-fra.com

Où se trouve global.asax.cs dans Visual Studio 2010

Je n'ai plus de code de classe d'application globale derrière les modèles installés. Tout ce que j'ai est Global.asax. Je trouve plus à l'aise de travailler avec Global.asax.cs

  1. Pourquoi est-ce que je ne le vois plus?
  2. Comment recréer Global.asax.cs?
20
naveen

C'est parce que vous avez créé un site Web au lieu d'une application Web. Je vous recommanderais d'utiliser un modèle d'application Web précomiplé, mais si vous devez utiliser un site Web, procédez comme suit:

~/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()
        {
        }
    }
}

Maintenant, rouvrez votre site dans VS.

31
Darin Dimitrov

Oui @ La réponse de Darin a raison, le fichier cs/vb est visible dans l'application Web, mais sur le site Web, vous ne pouvez pas avoir un fichier cs/vb séparé. 

Global.asax n'a pas de fichier cs, mais vous pouvez écrire du code ....

<script runat="server">

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

</script>
4
Muhammad Akhtar

En réalité, sur le site Web standard de VS 2010, un code derrière le fichier n’est pas présent par nature pour Global.asax. Alors que faire? Vous devez utiliser un modèle de code en ligne comme celui-ci.

<%@ 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

Appuyez sur Ctrl + Maj + A et ajoutez une classe d'application globale à partir de la liste.

1
sreekar

Préambule

Je ne comprenais pas bien la réponse de Darin, car il ne respectait pas les normes en matière de désignation de la classe globale, avec tout le respect que je lui dois. J'avais besoin d'une solution pour VS2005, pas 2010, mais je suis sûre que cette solution fonctionnera tout de même.

Ajout de CodeBehind pour le fichier Global.asax dans asp.net 2.0

Supprimez tous les fichiers Global.asax et Global.cs actuels ou tentez de résoudre ce problème.

Ok, une fois parti, allez dans le dossier racine de votre projet, cliquez avec le bouton droit de la souris et choisissez Ajouter un nouvel élément ...

Sélectionnez la classe globale et cliquez sur OK

Retournez à nouveau dans le dossier racine, cliquez avec le bouton droit de la souris et choisissez un nouveau cours.

Nommez cette classe - Global.cs

Et oui, autorisez son enregistrement dans le dossier app_code. Ne dites PAS NON et laissez-le être placé dans le dossier racine. Il doit être dans le dossier app_code.

Editez le fichier Global.asax et coupez (coupez/collez) le code dans la balise <script>. Le fichier devrait ressembler à ceci et ajouter la balise Inherits.

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

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

Accédez au fichier global.cs dans app_code et collez le code que vous avez coupé dans le fichier Global.asax.

Le fichier global.cs dans app_code devrait maintenant ressembler à ceci ...

/// <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.



    }

}

Nous avons maintenant le fichier Global.asax et le code derrière le fichier Global.asax.cs avec un nom de classe. En faisant cela, nous pouvons aller de l'avant et accéder à la variable statique n'importe où sur le site Web.

0
Fandango68