Я пытаюсь создать метод обработки ошибок для приложений нашей компании в интрасети. Ошибка отображается на странице с помощью элемента управления asp: label. Когда я делал встроенное кодирование, это было нормально, но когда я пытаюсь поместить код в метод на главной странице, это не работает. Я получаю ошибку компиляции. Вот метод (в файле master.cs):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _BASE_MASTER : System.Web.UI.MasterPage
{
public void AddError(string strWhen, string strMessage)
{
lblAlert.Text += "<p>" + "Une erreur s'est produite " + strWhen + "<br/>'" + strMessage + "'</p>";
lblAlert.RenderControl(new HtmlTextWriter(Response.Output));
}
}
Нет проблем ... Работает, если я на первой странице контента:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _BASE_SECTEUR_BASE : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
((_BASE_MASTER)Master).AddError("TEST", "TEST2");
}
}
Это странно, выдает небольшую ошибку, но работает (я бы обычно не использовал это в событии загрузки).
На второй странице это не работает.
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;
public partial class _BASE_SECTEUR_Default : System.Web.UI.Page
{
bool errorOccured = false;
[...]
}
catch (Exception e)
{
if (!errorOccured)
{
((_BASE_MASTER)((_BASE_SECTEUR_BASE)Master).Master).AddError("lors de l'acquisition du code congé.", e.Message);
errorOccured = true;
}
}
[...]
}
'_ BASE_MASTER' не существует в этом контексте, хотя все выглядит нормально. Я пытался пару часов, и я не могу найти решение. Может быть, кто-то может помочь?
Еще пара точности:
Я использую 2 главные страницы:
- Один, чтобы сделать страницы похожими (_BASE_MASTER),
- Чтобы внести некоторые изменения (например, название) в подразделы сайта (_BASE_SECTEUR_BASE).
Я также проверил, дважды проверил, трижды проверил ссылки между страницами. Все прекрасно работает без вызова метода AddError.