簡體   English   中英

異步消息發送Asp.net

[英]Asychnronous Message Send Asp.net

我正在嘗試了解AJAX內容如何在后台運行。 說我有一個帶有按鈕的asp.net表單。 然后,我有了一個只有一列DateTime的數據庫。 當我單擊asp.net表單上的按鈕時,我想用當前時間在數據庫中插入一列。

我將有一個C#事件處理程序:

protected void btnButton_OnClick(Eventargs e, object sender)
{
    //insert DateTime.now into DB
    //This part is easy
}

我想在表單本身上發生的事情是使按鈕單擊“不重新加載表單”。 它只會向服務器發送一條消息。 沒有理由重新加載頁面。 我可以通過哪些方式完成此任務?

  1. 我已經稍微研究了AJAX框架,似乎可以在更新面板中完成此操作,但是頁面仍會重新加載,這對於用戶來說不太明顯。

  2. 使用javascript中的__doPostBack調用。 我不知道這是如何工作的。

聽起來您喜歡Microsoft提供的javascript庫,這很好。 UpdatePanel之類的東西都有它們的位置,但是我發現,當您需要做非常簡單明了的事情(例如您所描述的事情)時,通過直接從Javascript調用服務器資源來完成它更容易,更干凈。

有很多方法可以做到這一點,但是我喜歡使用jquery的$ .ajax()方法來調用webservice方法(或者最近的MVC操作)。 如果您願意研究一些稍有不同的技術,那么這里的博客文章將帶您了解我在說什么。

ASP.NET Ajax有兩個主要部分:

  • 基於服務器端控件
  • 客戶端框架(稱為Microsoft Ajax

對於第一個,您將選擇使用UpdatePanel控件。 但是,這仍然會像整個viewstate一樣通過網絡發送大量不需要的數據,您的頁面幾乎會像正常回發一樣遵循整個頁面生命周期。 通常,我建議不要在生產代碼中使用它。

第二部分是一個基於純javascript的ajax庫,上面帶有一點微軟調味料。 它與頁面生命周期(如pageLoad函數)具有相似之處,並且非常易於學習。

__doPostBack

當您在頁面上放置某些服務器控件(如LinkBut​​ton控件)時,將插入該函數。 您可以直接從javascript調用它,但知道它將導致整頁回發到服務器,因此,如果要避免這種情況,請不要使用該路徑。

在過去的兩年中,我成為了jQuery的忠實擁護者 ,它可以與ASP.NET和ASP.NET MVC一起很好地工作。

我建議您閱讀這篇精美的文章,以獲取有關它的更多信息: 將jQuery與ASP.NET結合使用第2部分:對ASP.NET進行AJAX回調
jQuery本身也已被Microsoft采納和青睞。 我強烈建議您看看它及其功能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM