2013-02-12 95 views
0

我的朋友是一位經驗豐富的開發人員(但對.NET不熟悉)問我在哪裏實現了ASP.NET代碼隱藏代碼;在服務器或客戶端上。我的假設是,它在客戶端執行,因此編譯爲JavaScript,因爲代碼隱藏文件中的方法將響應客戶端事件,例如選擇不會導致回發的下拉列表。ASP.NET代碼隱藏文件在哪裏執行? (客戶端或服務器)

我真正想要的是對代碼隱藏文件中的代碼相對於其他應用程序執行方式/方式的更深入瞭解。

隱藏文件
+3

後面的代碼將在服務器上執行。你可以閱讀msdn的asp.net生命週期http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx – 2013-02-12 20:36:58

+0

是啊...... @DanHunex說的。 – 2013-02-12 20:38:19

+0

下面是一個體面的帖子,涵蓋了廣義的這個主題:http://edndoc.esri.com/arcobjects/9.2/net_server_doc/developer/adf/pagepost_clientcall.htm – jbabey 2013-02-12 20:41:32

回答

1

http://msdn.microsoft.com/en-us/magazine/cc163675.aspx

代碼執行服務器端。 除了將.aspx文件中的渲染方法作爲可以與簡化的代碼隱藏類合併的分部類之外,ASP.NET還可以輕鬆生成所有控件變量聲明。這正是Windows Forms在.NET Framework 2.0中的工作原理。所有設計器生成的代碼都放置在同級的部分類中,然後與您的應用程序邏輯和事件處理程序合併到一個表單派生類中,從而在不借助繼承的情況下在機器生成的代碼和開發人員代碼之間創建一個乾淨的分隔。

4

Codebehind始終在服務器上執行。這就是它的原因,它也叫做ASP.NET WebForms。當網頁執行時,下面簡單介紹一下。

  1. WEB頁面被刷新爲HTML表單
  2. Web控件就臉紅的HTML輸入元素必要的Javascript
  3. 的JavaScript保持原樣(除非動態注入)

的下一個問題... ASP.NET服務器端如何知道我在客戶端執行什麼事件以在服務器端執行適當的事件?

答案是,ASP.NET將每個web控件轉換爲一個或多個html元素&將它們命名爲唯一,以便它可以獲取生成事件的HTML元素的名稱並相應地執行操作。它使用ViewState(除了各種其他用途)來確保html控件名稱在往返過程中不被篡改。

其他答案中給出的鏈接應該可以幫助你更好地理解。

0

文件後面的代碼在服務器上執行。互聯網上有很多可用的資源。其中一人可能是這個link

希望你有你的答案

1

TLDR:.NET代碼編譯成集(.dll),其中居住和執行服務器上的文件。

JavaScript在客戶端執行(一般參見node.js),.NET代碼在服務器上運行。這兩種技術通過HTTP請求/響應與任何其他技術進行通信。

當一個頁面首先從服務器請求時,它會遍歷所有的.NET代碼,並且來自服務器的響應是HTML呈現。該HTML可能包含指向其他文件的鏈接,例如腳本或樣式表文件。一旦服務器發送響應,它就與頁面無關。

客戶端語言(如JavaScript)可以通過完整頁面回發,部分回傳(UpdatePanels,gross)或AJAX與服務器通信。他們向服務器發送新的請求,服務器用新的頁面/ HTML /數據等進行響應。

有關客戶端/服務器與Web應用程序交互的更多信息,請參閱this article

相關問題