从Javascript调用ASP.NET 2.0服务器端代码
在过去的三天里,我一直在努力解决这个问题。当用户关闭浏览器时,我需要从Javascript调用asp.net服务器端代码。我使用下面的代码来实现这一点。在我的asp.net表单中,我有各种验证控件。即使存在一些验证错误,当我关闭表单时,服务器端代码在我的开发框(windows 7)中也能正常工作。但同样的代码在我的生产环境(windows server)中不起作用 它是否与验证摘要或验证控件有关。按钮控件的原因验证设置为false。因此,即使存在验证错误,我的表单也会发回。我说得对吗?我怀疑当出现验证错误时,表单没有返回到服务器。但是我在调用按钮点击事件之前禁用了javascript中的所有验证控件。有人能解释一下这个问题吗 很少有博客建议使用JQUERY、AJAX(Pagemethods和script manager)从Javascript调用ASP.NET 2.0服务器端代码,asp.net,Asp.net,在过去的三天里,我一直在努力解决这个问题。当用户关闭浏览器时,我需要从Javascript调用asp.net服务器端代码。我使用下面的代码来实现这一点。在我的asp.net表单中,我有各种验证控件。即使存在一些验证错误,当我关闭表单时,服务器端代码在我的开发框(windows 7)中也能正常工作。但同样的代码在我的生产环境(windows server)中不起作用 它是否与验证摘要或验证控件有关。按钮控件的原因验证设置为false。因此,即使存在验证错误,我的表单也会发回。我说得对吗?我怀疑当出
功能确认关闭(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
}