利用XMLHTTP實現ASP.NET無重新整理提交

來源:互聯網
上載者:User

在一些頁面處理中,如果需要多次進行後台提交處理的話,就會不停的重新整理頁面,很煩人,特別是機器配置不好或者網路狀況不好的情況下,更加顯得讓人難受。

這種情況下我們可以利用XMLHTTP來實現不重新整理的提交,這在做asp的時候就有不少這樣的應用,在asp.net裡使用也是一樣的。

首先,建立一個頁面,命名Send.aspx, 用來做需要提交的頁面,另一個頁面do.aspx, 用來做處理提交的頁面。

在Send.aspx頁面中,有一個input輸入框,作為我們需要提交到背景資料,

<input id="txtUser" type="text" runat="server">

另外寫一個js的提交方法,代碼如下:


function SendData()
{
    var xh = new ActiveXObject("MSXML2.XMLHTTP")
    xh.open("POST","do.aspx?ID=1",false);
    xh.send(document.all.txtUser.value);
    alert(xh.responseText);//列印XMLHTTP的返回資料
}

這個js方法非常簡單,定義一個XMLHTTP對象,然後就調用open方法和send方法,就可以了.

再在頁面中用一個button來調用該方法,發送到do.aspx。

在處理的頁面do.aspx,在對應的cs檔案do.aspx.cs中,這樣來接收發送過去的資料:


int id = 0;
if(Request.Params["ID"] != null)
{
    //接收從url中傳遞過來的參數
    id = int.Parse(Request.Params["ID"]);
}
//接收從xh.send()方法中傳遞過來的資料
System.IO.Stream stream = Request.InputStream;
System.IO.BinaryReader br = new System.IO.BinaryReader(stream, System.Text.Encoding.Default);
int len = int.Parse(stream.Length.ToString());
byte[] b = br.ReadBytes(len);
//這裡可以根據傳遞過來的參數和資料進行各種處理
//
//返回給發送頁面的資料,通過Response.Write()來傳遞
//這裡將發送過來的參數和資料返回
Response.Write(id + System.Text.Encoding.Default.GetString(b));

整個過程就這樣OK了。

注意,在do.aspx檔案的html字碼頁面中,如果存在任何的前台代碼,都會作為send()請求的返回內容,一併返回到xh.responseText中。

另外,可以用html頁面來替代上面的Send.aspx,按照相同的方法,來實現靜態頁面的資料提交。

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.