ASP.NET:按退出按钮退出应用程序

时间:2016-02-04 13:27:11

标签: javascript c# asp.net

我真的是asp.net的新手。我正在使用Visual Studio 2012。

我创建了一个登录页面,有两个按钮LoginExit

当我单击Exit按钮时,必须关闭应用程序并停止调试。

我的尝试:referred

我知道在这个问题的指定链接上还有其他解决方案,但我更喜欢以下方法。

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

并在Login.aspx中编写以下javascript函数。

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

注意:如果单击退出按钮,上面的脚本工作正常,但应用程序也会在我单击Login按钮时关闭,并且调试没有得到停止。

2 个答案:

答案 0 :(得分:1)

分别处理两个按钮。使用登录按钮执行任何操作以提交页面并处理回发,但不要将任何事件绑定到CloseWindow()功能。然后,只需创建并处理退出按钮,如:

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

您的注释的简单答案是使用Internet Explorer作为调试工具栏中的默认启动浏览器。

与winforms应用程序不同,ASP.Net应用程序是无状态的。在浏览器中运行的代码不依赖于与Visual Studio调试器中运行的代码相同的资源。它们之间唯一的连接是浏览器向服务器发出的请求(VS 2012调试器将自身视为服务器或使用IISExpress)以及服务器作为这些请求的一部分发回的响应。

在大多数情况下,这意味着,当您关闭浏览器时,服务器会继续运行,等待更多请求。 Internet Explorer的工作方式与使用Visual Studio的其他浏览器略有不同。当Visual Studio启动的IE实例关闭时,调试器进程也会关闭。

如果你真的刚刚开始使用ASP.Net,你应该试试ASP.Net MVC framework。它在服务器端和客户端代码之间具有更清晰的分离,这可以帮助您避免某些类型的问题。

答案 1 :(得分:1)

您的网页正在按照您的要求行事。

Page_Load中,您致电:

ClientScript.RegisterOnSubmitStatement()

该方法会导致每个表单提交执行您提供的脚本;这意味着所有按钮在单击时都会运行CloseWindow程序。

如果您只想让其中一个按钮关闭窗口,那么您应该只将CloseWindow方法附加到其中一个按钮上。您从链接问题中选择的答案仅适用,因为表单上只有一个按钮。我建议你选择其中一个答案,例如:使用:

  

的OnClientClick =&#34;的javascript:window.close()的;&#34;

作为退出按钮的属性。