Подтвердить что ты не робот

Где global.asax.cs в Visual Studio 2010

У меня нет кода класса Global Application, который уже находится внутри установленных шаблонов. Все, что у меня есть, это Global.asax. Мне удобнее работать с Global.asax.cs.

  • Почему я больше не вижу этого?
  • Как воссоздать Global.asax.cs?
4b9b3361

Ответ 1

Это потому, что вы создали веб-сайт вместо веб-приложения. Я бы рекомендовал вам использовать предварительно настроенную модель веб-приложения, но если вам нужно использовать веб-сайт, вы можете сделать следующее:

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

Ответ 2

Да @Darin Ответ прав, файл cs/vb можно увидеть в веб-приложении, но на веб-сайте у вас не может быть отдельного файла cs/vb.

У Global.asax нет файла cs, но вы можете написать код....

<script runat="server">

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

</script>

Ответ 3

Собственно, на стандартном веб-сайте 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>

Ответ 4

Нажмите Ctrl + Shift + A и добавьте глобальный класс приложения из списка

Ответ 5

Преамбула

Я не мог понять ответ Дарина, поскольку он не придерживался стандартов с наименованием глобального класса со всем уважением. Мне нужно решение для VS2005, а не 2010, но я уверен, что это решение будет работать, тем не менее.

Добавление CodeBehind для файла Global.asax в asp.net 2.0

Удалите любые текущие файлы 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>

Перейдите в файл global.cs в app_code и вставьте код, вырезанный из файла Global.asax.

Файл global.cs в app_code теперь должен выглядеть так:

/// <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 с именем класса. Делая это, мы можем идти вперед и получать доступ к статической переменной где угодно на веб-сайте.

Ответ 6

Оба файла одинаковые "global.asax" относятся к веб-сайту, а "global.asax.cs" относится к веб-приложению. стандарты кодирования одинаковы в обоих из них

Ответ 7

Вам не нужно создавать новый класс библиотеки glabal, поскольку при создании нового веб-приложения или веб-сайта у вашего приложения уже будет элемент с именем global.asax.cs в вашем браузере решений.