2017-09-19 96 views
1

我有一个ASP.net WebForms网站。 在其中一页中,我想向服务器发送消息,以便服务器随时了解客户机上的更改。 简而言之,从文本框或按钮或w/e的回发将执行,除了它也刷新页面。C#ASP.net WebForms回发无更新/刷新

我想只对服务器做一个web请求,但保持相同的会话,所以我仍然在服务器端的会话变量。

同样,我不是在寻找UpdatePanel功能,这是类似于此建议的大多数问题。

+1

为什么会在回发后丢失会话状态? – CalC

+0

我不会,但回发会刷新页面,这不是我想要的。另外,会话部分用于服务器端,因此它也可以访问所有会话变量。这就是为什么我不能只做一个简单的网络请求(类似休息)的原因。 – Wietlol

+5

也许只是使用jquery ajax和webmethod然后 - https://www.aspsnippets.com/Articles/Calling-ASPNet-WebMethod-using-jQuery-AJAX.aspx – CalC

回答

1

如果您需要发送信息到您的服务器没有回发(或使用UpdatePanel),您可以使用AJAX异步调用。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script> 
<script type = "text/javascript"> 
function ShowCurrentTime() { 
    $.ajax({ 
     type: "POST", 
     url: "CS.aspx/GetCurrentTime", 
     data: '{name: "' + $("#<%=txtUserName.ClientID%>")[0].value + '" }', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: OnSuccess, 
     failure: function(response) { 
      alert(response.d); 
     } 
    }); 
} 
function OnSuccess(response) { 
    alert(response.d); 
} 
</script> 

其中本例中的aspx页面URL是CS.aspx,方法名称是GetCurrentTime。数据可以作为JSON发送,需要在服务器方法上解析。