2017-09-19 138 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發送,需要在服務器方法上解析。