2012-10-25 54 views
1

這裏是我當前的代碼:如何在asp.net webforms中使用jquery ajax發佈和訪問數據?

下面是Default.aspx的

<body> 
    <form id="form1" runat="server"> 
    <div id="mydiv"> 

    </div> 
    </form> 
    <script> 
     $(document).ready(function() { 

      $.ajax({ 
       url: 'Default2.aspx', 
       data: "{ 'name': '" + "randel" + "' }", 

       type: "POST", 
       success: function() { 

        // alert('insert was performed.'); 
        $("#mydiv").empty(); 

        $("#mydiv").load("Default2.aspx #div"); 

       }, 
       error: function (data, status, jqXHR) { alert(jqXHR); } 
      }); 

     }) 
    </script> 
</body> 

那麼對於Default2.aspx,我想訪問這樣的數據:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Label1.Text = Request.Form["name"].ToString(); 

    } 

回答

2

這看起來像你想在ASP.NET中使用WebMethod

$(document).ready(function() { 
      $.ajax({ 
       url: 'Default2.aspx/HelloWorld', 
       data: "{ 'name': '" + "randel" + "' }", 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { 
        // alert('insert was performed.'); 
        $("#mydiv").empty(); 
        $("#mydiv").html(data); 
       }, 
       error: function (data, status, jqXHR) { alert(jqXHR); } 
      }); 
     }); 

並在後面的代碼,你應該這樣做:

[WebMethod()] 
public static string HelloWorld(string name) 
{ 
string message = "Hello " + name; 
return message; 
} 

的WebMethods在某種比做__doPostBack(),因爲您在使用例如jQuery的CONTROLL所有客戶端 - 服務器的流量更好。 關於WebMethods的更多信息:here或者僅僅是Google WebMethods ASP.NET。

,如果你想獲得某種形式的價值,你應該把它放在$就數據參數和的WebMethod添加相同的參數。

EDITED

從您發佈我看到你想從Default.aspx的一些數據發送到Default2.aspx並加載從Default2.aspx一些內容的代碼(#div)。

你可以這樣做:

$.ajax({ 
       url: "/Default2.aspx", 
       type: "GET", 
       dataType: "html", 
       async: false, 
       data: { "name": "randel" 
       }, 
       success: function (obj) { 
        // obj will contain the complete contents of the page requested 
        // use jquery to extract just the html inside the body tag 
        $content = $(obj).find('body #div').html(); 
        // then update the dialog contents with this and show it 
       } 
     }); 

而且在後面的代碼:

protected void Page_Load(object sender, EventArgs e) 
    { 
     Label1.Text = Request.QueryString["name"]; 
    } 
+0

不,我要訪問的數據在Default2.aspx頁面不是一個web服務,但感謝你的立即回覆。謝謝++ –

+0

@ randelramirez1現在就來看看。 –

+0

謝謝你的解決方案,但我想用「POST」,但是謝謝++:D –

相關問題