2013-06-03 63 views
1

我想使用HTML5從客戶端(JavaScript)發送到服務器端(ASP.NET,C#)的JSON數據。我正在使用XMLHttpRequest對象通過使用以下JavaScript代碼發送數據到服務器。我在HTML按鈕點擊後執行此代碼。如何獲得asp.net中服務器端的XMLHTTPRequest對象c#

var xhr = new XMLHttpRequest(); 
var jsonString = JSON.stringify(jsonObj); 
xhr.open('GET', '/HTML5_Crud.aspx?obj='+jsonString, true); 
xhr.send(); 

在服務器端(ASPX.cs)文件我在Page_Load方法中使用以下代碼從客戶端獲取數據。

if (Request.QueryString["obj"] != null) 
{ 
    jsonStr= Convert.ToString(Request.QueryString["obj"]); 
    lblTest.Text = "the json is: "+ jsonStr; 
} 

但是當我運行應用程序並單擊按鈕我的標籤沒有更新最新的數據。它仍然與我設置的默認文本一樣。請幫我解決這個問題。

+0

嘗試在您的ajax請求中添加回調函數..如果您熟悉它 – vendettamit

回答

0

在第二個代碼片段中,lblTest.Text的值只存在於您從javascript製作的請求的上下文中。沒有神奇的方式來更新最初發送給瀏覽器的響應。如果你想,要成爲更新你所要做之一:

  1. 使用回傳,而不是javascript和更新頁面
  2. 使用JavaScript來讀取來自Ajax請求的響應,然後更新DOM客戶端。
0

你正試圖做兩件不同的事情。 XMLHttpRequest用於AJAX請求,並且您在後端執行的操作只會在重新加載頁面時更新頁面。但是,因爲您正在發送AJAX請求,所以不會刷新頁面。

你需要做的是在你的代碼後面用一個字符串或其他東西來回應,並在你的javascript中,根據需要使用字符串。

0

您的標籤不會以此方式更新。

相反,您應該將該值返回給您的請求並處理它的xhr的onreadystatechange事件。

或者您可以將標籤包裝在UpdatePanel中,並添加一個按鈕,將該值存儲在隱藏字段中,例如並導致回發。然後,您可以從該字段中檢索值,並且整個面板將更新爲新值。

相關問題