2016-02-04 2 views
-2

Я действительно новый парень для asp.net. Я использую Visual Studio 2012.ASP.NET: Выход из приложения при нажатии кнопки выхода

Я создаю страницу входа, были две кнопки Login и Exit.

Когда я нажимаю кнопку Exit, приложение должно быть закрыто, а также останавливать отладку.

Моя попытка: referred

Я знаю, что есть и другие решения по данной ссылке для этой проблемы, но я предпочитаю следующий подход.

protected void Page_Load(object sender, EventArgs e) 
    { 
     ClientScript.RegisterOnSubmitStatement(typeof(Page), "closePage", "window.onunload = CloseWindow();"); 
    } 

и написал следующую функцию javascript внутри Login.aspx.

<script language="javascript" type="text/javascript"> 
    function CloseWindow() { 
     window.close(); 
    } 
</script> 

Примечание: Данный скрипт работает отлично, если я нажимаю на кнопку выхода но приложения также получить близко, когда я нажмите кнопку Login, а также отладки не получает остановки.

+0

Minus 1, Так вы, ребята, приветствуете нового парня в мире asp.net? – MAK

ответ

1

Ваша страница делает именно то, что вы просили.

В вашем Page_Load, вы назвали:

ClientScript.RegisterOnSubmitStatement() 

Этот метод вызывает каждое представление формы для выполнения сценария вы предоставили; это означает, что все ваши кнопки будут запускать вашу процедуру CloseWindow, когда они будут нажаты.

Если вы хотите, чтобы одна из ваших кнопок закрывала окно, вы должны только присоединить метод CloseWindow к одному из них.Ответ, который вы выбрали из связанного вопроса, работает только потому, что в форме есть только одна кнопка. Я бы рекомендовал вам пойти с одним из других ответов, например. используя:

OnClientClick = "javascript: window.close();"

как атрибут на кнопке выхода.

1

Обращайтесь с двумя кнопками отдельно. Сделайте все, что хотите, с помощью кнопки входа в систему, чтобы отправить страницу и обработать обратную передачу, но не привязывать какие-либо события к функции CloseWindow(). Затем, просто создавать и обрабатывать кнопку Выход, как:

<input type="button" onclick="CloseWindow();" value="Exit"/> 

Простой ответ на вашу записку, чтобы использовать Internet Explorer в качестве запуска браузера по умолчанию в панели инструментов отладки.

В отличие от приложения winforms, приложение ASP.Net не имеет аналогов. Код, который работает в браузере, не зависит от тех же ресурсов, что и код, запущенный в отладчике Visual Studio. Единственное соединение между ними - это запросы, которые браузер делает на сервер (отладчик VS 2012 либо рассматривает себя как сервер, либо использует IISExpress), и ответы, которые сервер отправляет обратно в рамках этих запросов.

В большинстве случаев это означает, что при закрытии браузера сервер продолжает движение, ожидая большего количества запросов. Internet Explorer работает несколько иначе, чем другие браузеры с Visual Studio. Когда экземпляр IE, который запускает Visual Studio, закрывается, процесс отладчика также закрывается.

Если вы действительно только начинаете ASP.Net, вы должны попробовать ASP.Net MVC framework. Он имеет более четкое разделение между кодом сервера и клиента, что может помочь вам избежать некоторых из этих типов проблем.

+0

Большое вам спасибо за подробный ответ. Получение сообщения об ошибке «Сообщение об ошибке компилятора: CS1026:) ожидается». – MAK

+0

Пример, который я вам дал, имел только две соответствующие круглые скобки, поэтому похоже, что у вас отсутствует ")" где-то еще на вашей странице – longestwayround

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