从Javascript调用ASP.NET 2.0服务器端代码

从Javascript调用ASP.NET 2.0服务器端代码,asp.net,Asp.net,在过去的三天里,我一直在努力解决这个问题。当用户关闭浏览器时,我需要从Javascript调用asp.net服务器端代码。我使用下面的代码来实现这一点。在我的asp.net表单中,我有各种验证控件。即使存在一些验证错误,当我关闭表单时,服务器端代码在我的开发框(windows 7)中也能正常工作。但同样的代码在我的生产环境(windows server)中不起作用 它是否与验证摘要或验证控件有关。按钮控件的原因验证设置为false。因此,即使存在验证错误,我的表单也会发回。我说得对吗?我怀疑当出

在过去的三天里,我一直在努力解决这个问题。当用户关闭浏览器时,我需要从Javascript调用asp.net服务器端代码。我使用下面的代码来实现这一点。在我的asp.net表单中,我有各种验证控件。即使存在一些验证错误,当我关闭表单时,服务器端代码在我的开发框(windows 7)中也能正常工作。但同样的代码在我的生产环境(windows server)中不起作用

它是否与验证摘要或验证控件有关。按钮控件的原因验证设置为false。因此,即使存在验证错误,我的表单也会发回。我说得对吗?我怀疑当出现验证错误时,表单没有返回到服务器。但是我在调用按钮点击事件之前禁用了javascript中的所有验证控件。有人能解释一下这个问题吗

很少有博客建议使用JQUERY、AJAX(Pagemethods和script manager)

功能确认关闭(e){
var evtobj=window.event?事件:e;
如果(evtobj==e){
//火狐
如果(!evtobj.clientY){
evtobj.returnValue=消息;
}
}
否则{
//即
if(evtobj.clientY<0){
DisablePageValidators();
document.getElementById(“”)。单击();
}
}
}
函数DisablePageValidators(){
if((第页验证程序的类型)!=“未定义”)&&(第页验证程序!=null)){
var i;
对于(i=0;i
查看以下链接:

它们描述了在JavaScript中关闭浏览器时的反应。有了它,您可以初始化从JavaScript到服务器的ajax请求(借助jQuery或任何其他JavaScript框架)

(适用于Firefox和IE)


希望这有帮助

您不能以任何符合标准的方式捕获浏览器关闭事件。您需要使用AJAX。基本上,您正在尝试异步地对服务器端方法进行客户端调用。换句话说,它需要是异步的,因为在用户关闭浏览器后,您不能神奇地“停止”操作,然后等待服务器端代码完成。您需要挂接到客户端浏览器关闭事件,然后启动一些AJAX来完成您想要的。RPM1984-这是否意味着我的应用程序应该支持AJAX,或者我需要使用XMLHttpRequest。。你能提供一些链接吗
        function ConfirmClose(e) {

        var evtobj = window.event ? event : e;
        if (evtobj == e) {
            //firefox
            if (!evtobj.clientY) {
                evtobj.returnValue = message;
            }
        }
        else {
            //IE
            if (evtobj.clientY < 0) {
                DisablePageValidators();
                document.getElementById('<%# buttonBrowserCloseClick.ClientID %>').click();
            }
        }
    }

function DisablePageValidators() {
        if ((typeof (Page_Validators) != "undefined") && (Page_Validators != null)) {
            var i;
            for (i = 0; i < Page_Validators.length; i++) {
                ValidatorEnable(Page_Validators[i], false);
            }
        }
    }


//HTML 
<div style="display:none" >
    <asp:Button ID="buttonBrowserCloseClick" runat="server" 
        onclick="buttonBrowserCloseClick_Click" Text="Button" 
        Width="141px" CausesValidation="False"  />


//Server Code
protected void buttonBrowserCloseClick_Click(object sender, EventArgs e)
{
    //Some C# code goes here
 }