0

ASP.NET 不允许使用标签制作多个表单背后的理念是什么runat=server......

4

1 回答 1

2

无论好坏,Web 表单都是围绕旨在抽象底层平台的概念构建的。服务器控件、服务器事件、ViewState 和 UpdatePanel 就是这种方法的示例。

多种形式并非不可能,但对于将服务器控件添加到他/她的页面并希望它们“正常工作”的新手开发人员来说是不直观的。对于有经验的开发人员来说,这会很好,但它会引入一组新的警告(并且 Web 表单有许多细微差别和警告)。

例如,假设我GridView在表单 A 中添加了一个,DropDownList在表单 B 中添加了一个。下拉菜单会触发回发,但只有表单 B 中的数据会发布到服务器(这就是表单的工作方式;一次只发布一个)。

但是,GridView 现在丢失了它的所有 ViewState,它包含在表单 A 中。页面现在完全损坏了。

Ad hoc ViewState 值更加棘手。开发人员可以将他们想要的任何内容作为名称/值对放入 ViewState。服务器应该如何决定哪个表单获取 ViewState?如果它进入所有形式,那就是页面膨胀。

概括

  • 这在技术上并非不可能,但问题可能大于好处。
  • 您可以通过一些方法<form>向 ASPX 页面添加第二个页面(尽管它可能不在服务器上运行)。
  • 一个页面上的多个表单绝对没有错。这是使用平台而不是对抗/抽象它的众多优势之一,例如 ASP.Net MVC 尝试做的。
于 2013-04-02T23:29:17.237 回答