2012-10-16 263 views
1

對不起。這可能是對你很簡單...客戶端 - 服務器按鈕請求

我在Web窗體的按鈕。在瀏覽器中,我打開了火的Bug,看到對應的按鈕

<input type="submit" id="btn" value="Upload" name="btn"> 

以下是在服務器端我的按鈕HTML以下HTML ...

<asp:Button ID="btn" runat="server" Text="Upload" OnClick="ButtonClick" /> 

那麼當用戶點擊該按鈕,現在在客戶端,調用按鈕的服務器端處理程序。

我的問題是,這是怎麼映射正在內部完成,我的意思是,用戶是打在客戶端上的按鈕,這是在執行服務器端的代碼?因爲按鈕在服務器上不再可用。頁面被下載,現在它在客戶端。對?

在Windows窗體應用程序,這是非常簡單的理解這個概念的按鈕事件和處理程序都趴在同一個文件中並沒有客戶端 - 服務器的概念。

+0

我同意@Joel Etherton的答案。當使用ASP.NET WebForms(這種情況)時,答案是有效的。 AMember的答案僅在使用ASP.NET MVC進行開發時纔有效。 – Ewerton

回答

1

一切都在頁面的ViewState,這是因爲回傳過程中的參數傳遞息息相關。所以實際上,按鈕繼續「活着」,各種參數也隨之傳遞。如果您查看生成的頁面的來源,您將看到一個處理正在發生的實際事件的JavaScript調用__doPostBack。這是以http POST請求的形式發送的,ViewState爲頁面的服務器端代碼提供任何「有狀態」信息。

有很多更會在這裏,我建議你研究的Asp.Net Page Lifecycle更徹底地瞭解它。

+0

我看着生成頁面的來源。不顯示'__doPostBack JavaScript調用'。我的服務器HTML是這個'' – testing

+0

您的源代碼是在一個單獨的文件中還是包含在腳本中? –

+0

這是一個單獨的文件; – testing

0

點擊該按鈕調用表單提交該職位的價值到您的服務器,這反過來又觸發按鈕單擊事件。

相關問題