У меня нет кода класса Global Application, который уже находится внутри установленных шаблонов. Все, что у меня есть, это Global.asax. Мне удобнее работать с Global.asax.cs.
- Почему я больше не вижу этого?
- Как воссоздать Global.asax.cs?
У меня нет кода класса Global Application, который уже находится внутри установленных шаблонов. Все, что у меня есть, это Global.asax. Мне удобнее работать с Global.asax.cs.
Это потому, что вы создали веб-сайт вместо веб-приложения. Я бы рекомендовал вам использовать предварительно настроенную модель веб-приложения, но если вам нужно использовать веб-сайт, вы можете сделать следующее:
~/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.
Да @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>
Собственно, на стандартном веб-сайте 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>
Нажмите Ctrl + Shift + A и добавьте глобальный класс приложения из списка
Преамбула
Я не мог понять ответ Дарина, поскольку он не придерживался стандартов с наименованием глобального класса со всем уважением. Мне нужно решение для 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 с именем класса. Делая это, мы можем идти вперед и получать доступ к статической переменной где угодно на веб-сайте.
Оба файла одинаковые "global.asax" относятся к веб-сайту, а "global.asax.cs" относится к веб-приложению. стандарты кодирования одинаковы в обоих из них
Вам не нужно создавать новый класс библиотеки glabal, поскольку при создании нового веб-приложения или веб-сайта у вашего приложения уже будет элемент с именем global.asax.cs в вашем браузере решений.