インストールされているテンプレート内に、グローバルアプリケーションクラスのコードビハインドはもうありません。私が持っているのはGlobal.asaxだけです。 Global.asax.csを使用する方が快適です。
これは、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でサイトを再度開きます。
はい、@ダーリンの答えは正しいです。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>
実際、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>
Ctrl + Shift + Aを押して、リストからグローバルアプリケーションクラスを追加します
プリアンブル
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サイトの任意の場所で静的変数にアクセスできます。