Моя проблема заключается в том, как передать объекты и переменные из Page_PreInit в Page_Load.
Мне удалось сделать он работает следующим образом, но при использовании этого метода возникают случайные ошибки компиляции:
Код: Выделить всё
public partial class BuildPage : System.Web.UI.Page
{
protected static string pageData;
protected void Page_PreInit(object sender, EventArgs e)
{
--- SET pageData = DATA FROM DATABASE, AND SET MASTERPAGE ---
}
protected void Page_Load(object sender, EventArgs e)
{
--- USE pageData TO BUILD AND DISPLAY THE REST OF THE PAGE ---
}
}
1) «CS0102: тип «BuildPage» уже содержит определение для «pageData»»
2) «ASPNET: убедитесь, что класс, определенный в этом файле кода, соответствует атрибуту «inherits» и что он расширяет правильный базовый класс (например, Page или UserControl)».
Странно то, что иногда страница компилируется при первом веб-запросе. И в тех случаях, когда это не происходит при первом запросе, после случайного количества обновлений страницы он скомпилируется идеально. После компиляции все работает нормально, пока я не внесу еще одно изменение в код, и его придется перекомпилировать.
Похоже, я получаю эти ошибки компиляции только при использовании этого метода. для совместного использования переменных между Page_PreInit и Page_Load. Другими словами, если я просто дважды запрашиваю данные из базы данных: один раз в «Page_PreInit» и один раз в «Page_Load», я никогда не получу этих ошибок. Но я бы не хотел удваивать нагрузку на базу данных.
Поэтому мой вопрос на самом деле состоит из двух частей: во-первых, это приемлемый способ совместного использования переменных или есть лучший способ передать данные из Page_PreInit в Page_Load?
И во-вторых, если это приемлемый способ, не связаны ли ошибки и видел ли кто-нибудь подобное ошибки, которые просто исчезают после повторных веб-запросов раньше?
Спасибо за любую помощь!
корм
Подробнее здесь: https://stackoverflow.com/questions/117 ... -page-load
Мобильная версия