我们可以在网页中使用多个表单吗?

smw*_*dia 29 forms asp.net

到目前为止,我遇到的所有网页最多只包含一个<form>标签.为什么不多个?我想不出为什么多个表单不能在同一个网页中共存的原因.

另外,要特定于ASP.NET - 为什么所有服务器控件都放在<form>标记内?为什么不把它们放在其他地方?

加,

我注意到在一个.aspx文件中,<form>标签具有runat = server属性,而普通的服务器控件Button也有一个.所以它似乎<form>也是一个服务器控件.但奇怪的是,我无法在Visual Studio工具箱中找到它.

Ofe*_*lig 24

有多种形式, 黑客攻击.

这确实是WebForms 的缺点.在ASP.NET MVC中,您可以根据需要实现任意数量的表单(并且它是有效且正确的网页行为).

将所有服务器控件放在<form>标记内的原因是允许WebForms引擎识别它们,加载它们的值并将它们的值保存到ViewState.几乎所有WebForms中的控制管理基础结构都基于标记包含您从代码隐藏中访问的所有内容的想法.

  • 当他们设计ASP.NET时,它是一个完全不同的Web和假设世界.没有Ajax,没有意识到带宽(因此一切都是通过ViewState序列化的,它可以变得非常大).MS试图将VB表单的模型带到Web上 - 所有内容都拖放到表单上,控件"神奇地"记住它们在提交之前的价值.所有这些都需要托管表单元素容器. (17认同)