讨论一下ASP.NET窗体多个form的问题

uno 2007-01-28 02:56:11
为什么ASP.NET窗体必须有runat="server"的form——这个我知道的,因为要成为runat=server控件的容器
那为什么只能有一个form?谁能解答一下?

另一个问题是:asp.net啥时候能支持一个窗体多个runat=server的form?

现在只能用第三方控件实现……
...全文
876 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
amyfu 2008-09-20
  • 打赏
  • 举报
回复
关注。。。。。
A4TKD 2008-09-08
  • 打赏
  • 举报
回复
因为类的原因,现在这个类的实例里只能有一个form run at server,等微软解决吧,现在还是通过其它方法变通着做吧,比如一个注册页面里同时包含登录窗口,验证时登录窗口是一个验证,注册部分是一个验证,要么做两个form,一个run at server,一个不
uno 2007-01-28
  • 打赏
  • 举报
回复
了解了,结贴
burn3tt 2007-01-28
  • 打赏
  • 举报
回复
前几天面试时候还问到了这个问题,返回到服务器维持用户状态必须整体维护,所以不能部分提交,我想楼主想通过部分的数据提交到服务器上来减轻服务器和数据流量的压力吧,那样用html中的form就行了啊。

至于第二个问题,我想是不是需要浏览器出来维护用户数据的统一性。
as13019625389 2007-01-28
  • 打赏
  • 举报
回复
不会 帮LZ顶下 给点分不会 帮LZ顶下 给点分
SeeSunSet 2007-01-28
  • 打赏
  • 举报
回复
看来楼主对类的结构东西了解得不太清楚.
心晴Sunheart 2007-01-28
  • 打赏
  • 举报
回复
个人觉得一般是用不上的,楼主的需求用javascript可以解决的,如果放多个form在一个page上的话反而更麻烦,
hertcloud 2007-01-28
  • 打赏
  • 举报
回复
一个页面只能有一个form runat=server
这个就像老楼上所说的 是asp.net的机制所 规定的

当然楼主 可以用asp的方式 不用添加非runat=server的form
用js脚本控制提交..
要不还可以用iframe包含你的每个form页面
cat_hsfz 2007-01-28
  • 打赏
  • 举报
回复
因为任何一个<form>提交时,都仅仅提交其内部数据,这是HTML和HTTP所规定了的。ASP.NET的Web Form概念导致一个Web Form必须整体维护,特别是ViewState这样的,如果部分提交将无法保持。

这就是Web Form的概念,通过一个简洁的通俗易懂的设计,来吸引尽可能多的开发人员到ASP.NET 1.0的平台上来,自然有所牺牲,例如楼主这种情况。不过既然这种牺牲是能够通过JavaScript来不足的,也就没所谓了。事实上你可以通过JavaScript解决这个问题,当当前focus在不同元素上时,对用户输入的响应略有不同,而不允许浏览器默认响应。
zhoofeng 2007-01-28
  • 打赏
  • 举报
回复
关注~~!
cpp2017 2007-01-28
  • 打赏
  • 举报
回复
这样会给人产生误解,为什么服务器控件运行不了? 我点这个form中的按纽这一部分控件可正常运行,另一个form中的控件肯定会会乱套.
cpp2017 2007-01-28
  • 打赏
  • 举报
回复
为什么只能有一个: 我的理解: form runat="server"是作为一个服务器控件的载体,这个form的action肯定是本页, method也必须是post 如果可用多个form,那么服务器控件的视图怎么保存? 放在哪一个form中? 一次只能提交一个form,那另一个form的控件的状态肯定会丢失.
cpp2017 2007-01-28
  • 打赏
  • 举报
回复
你的解决方案是对的,就是通过脚本实现.
uno 2007-01-28
  • 打赏
  • 举报
回复
to 慕白:

一个比较迫切的需求:如果页面有多个form,每个form都可以有各自的默认按钮(焦点位于当前form内,响应回车键的第一个submit按钮)

比如:一个用户登录,一个搜索——用户在输入用户名和密码后按回车就相当于点击“登录”按钮;用户在输入搜索关键字后按回车就相当于点击“搜索”按钮

而现在,我无法在一个提供多个提交功能的页面里提供多个不同的默认按钮,我只能为那些无法响应默认按钮的input单独添加回车键响应脚本
jsyxo 2007-01-28
  • 打赏
  • 举报
回复
作为服务器端的form是只有一个,但是可以在程序中构建多个form的
cpp2017 2007-01-28
  • 打赏
  • 举报
回复
问题是放多个runat="server"的form有什么意义?
mincunbao 2007-01-28
  • 打赏
  • 举报
回复
关注
renmasheshou 2007-01-28
  • 打赏
  • 举报
回复
关注~

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧