回答
当使用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. 单个页面上的多个表单
- 8. 修改一个没有服务器端页面的HTML5页面
- 9. asp.net 3.5支持单个页面上的多个表单吗?
- 10. 在一个Windows服务的单个TCP端口上托管多个WCF服务
- 11. 在同一页上的一个服务器和一个客户端表格
- 12. 多个asp.net开发服务器端口
- 13. 主题使用服务器端代码,当上一个ASP.NET页面
- 14. 在服务器上安排asp.net页面
- 15. 在asp.net中的单个页面上分页多个集合mvc
- 16. mvc4页面上的多个表单,提交一个表单
- 17. 在单个页面上组合多个表单/控制器
- 18. 多个服务器上的单个域
- 19. 一个页面上的多个表单提交一个
- 20. Codeigniter多个表单在一个页面上单独验证
- 21. 在同一个端口上打开多个服务器
- 22. 多个服务器端的数据表
- 23. 在同一个虚拟服务器上有多个Asp.Net WebApplication Project
- 24. 来自同一个页面的多个websocket与java作为服务器端
- 25. 在Tableau服务器上的一个页面中显示多个选项卡
- 26. 单服务器与多个客户端
- 27. 在一个页面上的多个表单
- 28. Silverstripe在一个页面上的多个用户表单
- 29. .NET多个表单在一个页面上的问题
- 30. 是否可以在服务器端缓存一个asp页面?
文章[ASP.NET中基于表单的编程(http://msdn.microsoft.com/en-us/magazine/cc164151.aspx)可能是有用的。 – 2010-02-06 19:25:56