Предполагая, что кнопка выхода из системы - это кнопка отправки html, вы можете проверить это, проверив данные банка запросов.Например,
if (null != Request.Form[YourButton.UniqueID])
{
// YourButton is clicked
}
Вы можете добавить публичный метод на своей главной странице, чтобы выполнить такую проверку и получить доступ к нему на своей странице.Например, в мастер-коде
public partial class YourMasterPage : System.Web.UI.MasterPage
{
public bool IsLogoutClicked()
{
return null != Request.Form[LogoutButton.UniqueID];
}
...
}
А затем на вашей странице содержимого
if (((YourMasterPage)this.Master).IsLogoutClicked())
{
...
}
В случае, если вы используете якорь или изображение для кнопки выхода из системы, тогда лучшим способом будетустановите скрытое поле с помощью js, а затем проверьте значение скрытого поля на странице.
РЕДАКТИРОВАТЬ : вот служебный метод, который проверяет данные запроса, чтобы определить, произошла ли обратная передача из-зана некоторый серверный элемент управления (независимо от типа элемента управления или независимо от свойства UseSubmitBehavior
кнопки).
public const string POST_DATA_EVENT_TARGET = "__EVENTTARGET";
public const string POST_DATA_EVENT_ARGUMENT = "__EVENTARGUMENT";
/// <summary>
/// Returns wheather postback has happened due to the given control or not.
/// </summary>
public static bool IsPostBackDueToControl(Control control)
{
var postData = HttpContext.Current.Request.Form;
string postBackControlName = postData[POST_DATA_EVENT_TARGET];
if (control.UniqueID == postBackControlName)
{
// This is control that has caused postback
return true;
}
if (control is Button ||
control is System.Web.UI.HtmlControls.HtmlInputButton)
{
// Check for button control, button name will be present in post data
if (postData[control.UniqueID] != null)
{
return true;
}
}
else if (control is ImageButton ||
control is System.Web.UI.HtmlControls.HtmlInputImage)
{
// Check for image button, name.x & name.y are returned in post data
if (postData[control.UniqueID + ".x"] != null)
{
return true;
}
}
return false;
}