2017-09-19 1 views
1

ASP.net WebForms 웹 사이트가 있습니다. 페이지 중 하나에서 서버가 클라이언트의 변경 사항을 최신 상태로 유지할 수 있도록 서버에 메시지를 보내려고합니다. 간단히 말해서 텍스트 상자 나 단추 또는 w/e에서 다시 게시하면 페이지가 새로 고쳐지는 것을 제외하고는 다시 게시됩니다.C# ASP.net 업데이트/새로 고침이없는 WebForms 포스트 백

서버에 웹 요청을하고 싶지만 서버 세션에 세션 변수가 있으므로 동일한 세션을 유지하고 싶습니다.

이번에도 이와 비슷한 질문을하는 UpdatePanel 기능을 찾고 있지 않습니다.

+1

왜 다시 게시 후에 세션 상태가 손실됩니까? – CalC

+0

나는 그렇지 않다.하지만 포스트 백이 페이지를 새로 고쳤다. 또한 세션 부분은 서버 측을위한 것이므로 모든 세션 변수에도 액세스 할 수 있습니다. 이것은 단순한 웹 요청 (rest-like)을 할 수없는 이유입니다. – 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으로 보낼 수 있습니다.