ASP.NET不提供多个服务器端表单

ASP.NET不提供多个服务器端表单,asp.net,Asp.net,ASP.NET不允许使用标签runat=server..制作多个表单背后的原理是什么?Web表单是围绕抽象底层平台的概念而构建的,无论好坏。服务器控件、服务器事件、ViewState和UpdatePanel就是这种方法的示例 多个表单并不是不可能的,但对于向页面添加服务器控件并希望它们“正常工作”的新手开发人员来说,这是不直观的。对于有经验的开发人员来说,这很好,但会引入一组新的注意事项(Web表单有许多细微差别和注意事项) 例如,假设我在表单a中添加了一个GridView,在表单B中添加了一个

ASP.NET不允许使用标签
runat=server
..制作多个表单背后的原理是什么?Web表单是围绕抽象底层平台的概念而构建的,无论好坏。服务器控件、服务器事件、ViewState和UpdatePanel就是这种方法的示例

多个表单并不是不可能的,但对于向页面添加服务器控件并希望它们“正常工作”的新手开发人员来说,这是不直观的。对于有经验的开发人员来说,这很好,但会引入一组新的注意事项(Web表单有许多细微差别和注意事项)

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

但是,GridView现在丢失了表单A中包含的所有ViewState。该页面现在已完全断开

特别的ViewState值甚至更复杂。开发人员可以将他们想要的任何东西作为名称/值对放入ViewState。服务器应该如何决定哪个表单获得ViewState?如果它以各种形式出现,那就是页面膨胀

摘要

  • 这在技术上并非不可能,但潜在的问题超过了好处
  • 有一些方法可以将第二个
    添加到ASPX页面(尽管它可能不会在服务器上运行)
  • 一个页面上有多个表单绝对没有问题。这是使用该平台而不是像ASP.NETMVC那样对抗/抽象它的许多优点之一
副本。回答后发现这个。