web-dev-qa-db-ja.com

Visual Studio 2010のglobal.asax.csはどこにありますか

インストールされているテンプレート内に、グローバルアプリケーションクラスのコードビハインドはもうありません。私が持っているのはGlobal.asaxだけです。 Global.asax.csを使用する方が快適です。

  1. なぜもう表示されないのですか?
  2. Global.asax.csを再作成する方法
20
naveen

これは、WebアプリケーションではなくWebサイトを作成したためです。事前にコンパイルされたWebアプリケーションモデルを使用することをお勧めしますが、Webサイトを使用する必要がある場合は、以下を実行できます。

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

次に、VSでサイトを再度開きます。

31
Darin Dimitrov

はい、@ダーリンの答えは正しいです。cs/ vbファイルはWebアプリケーションで表示できますが、Webサイトでは個別のcs/vbファイルを作成できません。

Global.asaxにはcsファイルがありませんが、コードを記述できます。

<script runat="server">

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

</script>
4
Muhammad Akhtar

実際、VS 2010標準のWebサイトでは、Global.asaxの仕様により、コードビハインドファイルは存在しません。じゃあ何をすればいいの?このようなインラインコードモデルを使用する必要があります。

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

Ctrl + Shift + Aを押して、リストからグローバルアプリケーションクラスを追加します

1
sreekar

プリアンブル

Darinがグローバルクラスの命名に関して標準に準拠しておらず、すべての敬意を払っているため、私はDarinの回答を完全に理解できませんでした。 2010ではなくVS2005のソリューションが必要でしたが、このソリューションがそれでもうまくいくと確信しています。

asp.net 2.0のGlobal.asaxファイルにCodeBehindを追加

現在のGlobal.asaxおよびGlobal.csファイルを削除するか、これを修正してください。

了解しました。プロジェクトのルートフォルダーに移動し、右クリックして[新しい項目の追加...]を選択します。

グローバルクラスを選択し、[OK]をクリックします

もう一度ルートフォルダに戻り、右クリックして新しいクラスを選択します

このクラスに名前を付ける-Global.cs

そして、はい-app_codeフォルダー内に保存できるようにします。 「いいえ」と言わず、ルートフォルダーに配置することを許可します。 必須 app_codeフォルダー。

Global.asaxファイルを編集し、<script>タグ内のコードを切り取ります(切り取り/貼り付け)。ファイルは次のようになり、Inheritsタグが追加されます。

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

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

App_codeのglobal.csファイルに移動し、Global.asaxファイルから切り取ったコードを貼り付けます。

App_codeのglobal.csファイルは次のようになります...

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



    }

}

これで、Global.asaxファイルと、クラス名を含むGlobal.asax.csの背後にあるコードが作成されました。これを行うことで、Webサイトの任意の場所で静的変数にアクセスできます。

0
Fandango68