回答
當使用Web表單,你應該永遠只能在頁面上的一個形式。也許廢話,但這樣是網頁形式的世界......
包裹整個頁面各處一種形式。然後當點擊一個按鈕(或者您正在使用的任何事件)時,您應該可以訪問頁面上所有控件的值。
是的,就像你說的那樣,在ASP.NET中你不能再有一個表單元素。但是,您可以使用相同的形式處理多個動作。不要使用表單的action屬性,使用asp.net服務器控件,如< asp:Button >,並將你的邏輯寫入回發控件的事件中。
手柄的形式作爲一個普通的HTML表單一個 - 不要使用RUNAT =「服務器」。手動從Request.Form集合中提取任何帖子中的值(因爲不會有與該表單對應的任何服務器端變量)。
或者,將所有元素放在同一個表單中,但使用不同的控件進行提交。每組控件(及其提交按鈕)應該位於不同的驗證組中,以避免由於您不關心的元素而導致驗證錯誤。在提交按鈕的回調中處理表單處理。
此外,我會建議最終轉移到ASP.NET MVC。從網絡的角度來看,MVC是一個更好的架構。它更接近於無狀態Web模型,並且沒有ASP.NET中的限制來幫助它模擬WinForms開發。
ASP.NET頁面框架架構允許單個表格與runat="server"
屬性。你不必擔心這件事。將控件放置在Webform上以實現兩種不同目的,並分別處理兩個asp.net服務器控件的單擊事件。
你只需要在邏輯上將其拆分成一個表格即可。如果您使用驗證程序,並且不希望這兩個「表單」要求填寫其他值,那麼您在名爲ValidationGroup的.NET控件上擁有一個屬性,只需要在一個「表單」中對所有屬性都是相同的。
雖然不是直接的方法,you CAN have multiple server side forms on the same page,但它有其自身的侷限性。 Cost $50
- 1. 一個頁面在ASP.net中只能有一個服務器端表單標籤
- 2. asp.net mvc客戶端驗證多個表單在一個頁面
- 3. ASP.NET頁面上的多個表單
- 4. 頁面只能有一個服務器端表單標籤
- 5. 一個頁面只能有一個服務器端的表單標籤
- 6. 單個頁面上的多個表單
- 7. 修改一個沒有服務器端頁面的HTML5頁面
- 8. asp.net 3.5支持單個頁面上的多個表單嗎?
- 9. 在一個Windows服務的單個TCP端口上託管多個WCF服務
- 10. 多個asp.net開發服務器端口
- 11. 主題使用服務器端代碼,當上一個ASP.NET頁面
- 12. 在單個頁面上組合多個表單/控制器
- 13. 在asp.net中的單個頁面上分頁多個集合mvc
- 14. 在服務器上安排asp.net頁面
- 15. 多個服務器上的單個域
- 16. 一個頁面上的多個表單提交一個
- 17. Codeigniter多個表單在一個頁面上單獨驗證
- 18. 在同一個端口上打開多個服務器
- 19. 多個服務器端的數據表
- 20. 在同一個虛擬服務器上有多個Asp.Net WebApplication Project
- 21. 在Tableau服務器上的一個頁面中顯示多個選項卡
- 22. 單服務器與多個客戶端
- 23. 是否可以在服務器端緩存一個asp頁面?
- 24. jquery和頁面上的多個表單
- 25. php在一個頁面上處理多個表單處理
- 26. 如何在一個頁面上處理多個表單?
- 27. 如何在一個頁面上處理多個表單?
- 28. ASP.NET MVC上的多頁面表單
- 29. 如何使用asp.net在服務器上生成一個新的html頁面?
- 30. 頁面只能有一個服務器端的Form標籤。
文章[ASP.NET中基於表單的編程(http://msdn.microsoft.com/en-us/magazine/cc164151.aspx)可能是有用的。 – 2010-02-06 19:25:56