У меня есть страница, которая выполняет некоторые проверки в методе Page_Load
Согласно этой проверке мне нужно заблокировать доступ к этой странице.
Пример:
protected void Page_Load(object sender, EventArgs e){
if (!IsPostBack)
{
if (MyValidation)
{
// The page is loaded an de user get access
}
else
{
// Here, i need to block the access to this page
// Redirect, close browser, etc ...
}
} }
на самом деле, есть этот код ...
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// The page is loaded an de user get access
Services.ChatService ws = new ChatService();
KeyValuePair<int, string> kvp = ws.AtenderClienteChat();
if (kvp.Key > 0)
{
this.CodigoChamadoChat = CriaChamado(kvp.Key, kvp.Value);
odsChamado.SelectParameters["cd_chamado"].DefaultValue = this.CodigoChamadoChat.ToString();
fvChamadoChat.DataBind();
// recupero da aplication a lista que contém os chat em andamento
Application.Lock();
List<chat_andamento> lstChatAndamento = (List<chat_andamento>)Application["ListChatAndamento"];
// Instancio e inicializo uma nova chat_andamento
chat_andamento ca = new chat_andamento(this.CodigoChamadoChat, kvp.Key, kvp.Value, WebUtil.GetUserId());
lstChatAndamento.Add(ca);
// Devolvo para a Application a lista preenchida
Application["ListChatAndamento"] = lstChatAndamento;
Application.UnLock();
// Altero o titulo da pagina para facilitar localização do tecnico quando estiver com mais de um chat em andamento
chamado c = (chamado)fvChamadoChat.DataItem;
Page.Title = kvp.Value + " (" + c.cliente.nomecomercial_cliente + ")";
// Envia uma mensagem de boas vindas
Services.ChatService sw = new ChatService();
sw.SendMessage(this.CodigoChamadoChat, "Olá " + kvp.Value + ", em que posso ajudar?", 2);
//RetrieveMessages();
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "RetMessTec", "timer_onTick();", true);
}
else
{
// Here, i need to block the access to this page
// Redirect, close browser, etc ...
// aqui é preciso abortar o carregamento da pagina
// talvez mostrar um DIV sobre toda a pagina inpedindo interação do usuário
ScriptManager.RegisterClientScriptBlock(this.Page, typeof(Page), "CliAtendido", "self.close();", true);
//this.divGeral.Visible = false;
//this.divErro.Visible = true;
}
}
}
и этот код выдаёт мне эту ошибку
Ошибка сервера в приложении '/'.
Ссылка на объект не установлена на
экземпляр объекта. Описание:
Необработанное исключение произошло во время
выполнение текущей сети
запрос. Пожалуйста, просмотрите трассировку стека
для получения дополнительной информации об ошибке
и откуда он возник в коде.
Сведения об исключении:
System.NullReferenceException: объект
ссылка не установлена на экземпляр
объект.
Ошибка источника:
Строка 173: функция
EncerrarChamado () {Строка 174:
// Primeiramente Mostra O Combo Para
выделите до линии Line 175: вар
divMotivo = $ ('# <% =
fvChamadoChat.FindControl ( "divMotivo"). ClientID
%> '); Строка 176: если
(divMotivo.hasClass ('Hidden')) {Линия
177
divMotivo.removeClass ( 'скрытый');
Исходный файл:
C: \ Projetos \ Avalon \ Avalon \ View \ Forms \ frmChatTecnico.aspx
Линия: 175
В строке 175 есть несколько операторов JQuery.
которые получают div внутри FormView
ВОПРОС 1 ЕСТЬ: Как заблокировать доступ (перенаправление, закрытие браузера и т. Д.), Если проверка переходит к части «Остальное» моей проверки
ВОПРОС 2: Если моя проверка переходит к «Иначе», FormView не создается, и если он не создан, то javascript не может получить к нему доступ.
Есть идеи?