#asp.net #page-lifecycle
#asp.net #страница-жизненный цикл
Вопрос:
Еще один вопрос новичка .net
Я создал класс, который наследует System.Web.UI.Page с намерением переопределить функции предварительной загрузки и выгрузки. Но Visual Studios жалуется, что я не могу переопределить, потому что «System.Web.UI.Page.Предварительная загрузка» не является функцией. Что не так с моим кодом? Вот оно:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
public partial class BTPage : System.Web.UI.Page
{
protected SqlConnection cnx;
public override void PreLoad(object sender, EventArgs e)
{
cnx = new SqlConnection(ConfigurationManager.AppSettings["btdatabase"]);
cnx.Open();
}
protected void Unload(object sender, EventArgs e)
{
cnx.Close();
}
}
Если есть что-то еще тревожное в моем коде, пожалуйста, скажите мне. Я новичок в .Net и я не уверен, что я делаю что-то «.NET way».
Что я также хочу сделать, так это чтобы каждая веб-страница наследовала от BTPage, чтобы все они открывали соединение с базой данных при предварительной загрузке.
Ответ №1:
PreLoad
не является методом Page
типа. Вам нужно переопределить OnPreLoad
Комментарии:
1. Хорошо, я изменил
PreLoad
наOnPreLoad
, и теперь я получаю эту ошибку:'BTPage.OnPreLoad(object, System.EventArgs)': no suitable method found to override
. Есть идеи?2.
OnPreLoad
это не подписка на событие, но откуда событие запускается, что означает, что у него нетsender
аргумента. Вам следует изменить сигнатуру метода наprotected override void OnPreLoad(EventArgs e)
.