2010-07-23 3 views
1

Я поставил точку останова в защищенном void Page_Load (объект отправителя, EventArgs e) метод моей главной страницы, но когда я запустил сайт, он не ударил эту точку останова.событие главной страницы asp.net не работает

Почему мероприятие не срабатывает? Я хотел бы использовать это событие вместе с другими, такими как событие Init, чтобы проверить, не истекает ли сессия каждый раз, когда загружается страница ...

Спасибо.

+0

пожалуйста, напишите некоторый код ?? –

+1

В случае, если у вас есть несколько основных страниц, подключена ли ваша страница к правой главной странице с точкой останова? –

+0

@this - одна главная страница, дефф подключен правильно. – kralco626

ответ

2

Возможно, вы захотите создать базовый класс типа «Страница», который обрабатывает вашу проверку сеанса. Оставьте мастер-страницы для оформления страницы. Если у вас несколько основных страниц, вам придется дублировать этот код в каждом из них, но если ваши страницы наследуются с одной базовой страницы, логика проверки сеанса будет находиться в одном месте.

+0

хорошо, что звучит хорошо. Как мне это сделать? – kralco626

+0

Создайте класс «MyCompany.BasePage» типа. Добавьте проверку сеанса в Load. Затем, в вашем коде на каждой из ваших страниц, измените тип с страницы на MyCompany.BasePage – MCain

+0

, должен ли он быть .BasePage.cs? Я пошел добавлять элемент и выбрал «класс» и назвал его MySite.BasePage – kralco626

2

Проблема, вероятно, в вашей странице .aspx неверно ссылается на вашу страницу .master. Убедитесь, что в верхней части страницы .aspx, у вас есть строка, подобная следующие:

<%@ Page Title="Some Title" Language="C#" MasterPageFile="Main.Master" CodeBehind="MyPage.aspx.cs" Inherits="MyApp.MyPage" %> 

Другая возможная проблема заключается, что ваша страница .master не ссылается на правильный (или любой) в сборе. Убедитесь, что в верхней строке вашей страницы .master похож на следующее:

<%@ Master Language="C#" AutoEventWireup="True" CodeBehind="Main.master.cs" Inherits="MyApp.Main" %> 
+0

Спасибо за ваш ответ. Две вещи: первая. Моя страница правильно ссылается на главную страницу. Во-вторых, что такое наследует = «MyApp.Main» означает? edit: oh и точка прерывания, которую я установил это на главной странице. – kralco626

2

Несколько вещей, чтобы проверить, некоторые из которых могут быть очевидны ...

  1. Проверьте ребенка страница вызывает правильную главную страницу.

  2. Мастер-страница Page_Load выполняется после дочернего Page_Load, поэтому убедитесь, что вы сначала отлаживаете выполнение дочерней страницы.

  3. Убедитесь, что вы действительно загрузили свое событие Page_Load, если используете VB.NET.

+0

извините, должен был сказать, что я использую C#, так что 3 не применяется. deff получил 1 право. И сайт загружается и все. Я использую его и т. д. он должен был вызвать главную страницу Метод page_load до этого правильно? – kralco626

0

Вам необходимо проверить декларацию страницы, чтобы убедиться, что она относится к надлежащей главной странице и главной странице, чтобы убедиться, что она относится к надлежащему унаследованному классу.

6

Вы можете проверить, что AutoEventWireup установлен в true в объявлении мастера.

<%@ Master Language="C#" MasterPageFile="~/MasterPages/Main.master" AutoEventWireup="true" CodeFile="Main.master.cs" Inherits="MasterPages_Main" %>

Если он установлен в ложь, вы должны вручную соединить события.

1

У меня была такая же проблема - перед тем как стрелять, но что-то пошло не так, и она остановилась.

Что фик его помещал page_load событие в .master файл не .master.cs

<script runat="server"> 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     //put your code here 
     //any function u wanna call declare it in the code file as public 

    } 
</script> 
0

У меня была немного другая проблема и другое решение.

На всякий случай у кого-то ситуация похожа на меня.

У меня была вложенная главная страница, а метод управления и связанного с ним события был в «среднем» хозяине. Эти методы НЕ вызывались, когда они были помещены в файл .cs для средней главной страницы.Но они были вызваны, когда они включены в .master-страницу в тегах скриптов, как описано выше, «petra».

Это похоже на ошибку в .net-платформе. Кроме того, я не думаю, что некоторые из вышеперечисленных сложных решений (или должны быть) необходимы (например, сохранение кода из главной страницы и использование только главной страницы для структуры и т. д.) - это скорее обходной путь, и я подозреваю, что действительно существует ошибка в .NET-платформе в отношении мастер-событий (особенно с вложенными главными страницами, как в моем случае).

0

Моя ошибка произошла из-за строки комментариев >>> base.OnLoad (e); в Site.Master.cs

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 
} 

PEACE

Смежные вопросы