Visual Studio 2010中的global.asax.cs在哪里

时间:2011-05-19 08:37:50

标签: c# .net asp.net visual-studio global-asax

我在已安装的模板中没有全局应用程序类代码隐藏。我所拥有的只是Global.asax。使用 Global.asax.cs ,我觉得更舒服。

  1. 为什么我不再看到它了?
  2. 如何重新创建Global.asax.cs?

7 个答案:

答案 0 :(得分:31)

那是因为您创建了一个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中重新打开您的网站。

答案 1 :(得分:4)

是@ Darin的答案是对的,可以在Web应用程序中看到cs / vb文件,但在网站中你不能有单独的cs / vb文件。

Global.asax没有cs文件,但您可以编写代码....

<script runat="server">

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

</script>

答案 2 :(得分:2)

实际上在VS 2010标准网站中,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>

答案 3 :(得分:1)

按Ctrl + Shift + A并从列表中添加全局应用程序类

答案 4 :(得分:0)

<强>序言

我无法理解达林的答案,因为他没有遵守全球级的命名标准,并且应该得到应有的尊重。我需要VS2005的解决方案,而不是2010年,但我相信这个解决方案永远不会有效。

在asp.net 2.0中为Global.asax文件添加CodeBehind

删除所有当前的Global.asax和Global.cs文件或尝试修复此问题。

好的,一旦消失,转到项目的根文件夹,右键单击并选择Add New Item ...

选择Global Class,然后单击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与类名。通过这样做,我们可以继续访问网站中任何位置的静态变量。

答案 5 :(得分:-2)

它们两个文件相同“global.asax”与网站相关,“global.asax.cs”与Web应用程序相关。编码标准在两者中都是相同的

答案 6 :(得分:-2)

您不需要创建新的glabal库类,因为在创建新的Web应用程序或网站时,您的应用程序本身在解决方案资源管理器中已经有一个名为global.asax.cs的项目。