首页 > 解决方案 > 在 ASP.Net 应用程序中使用多个表单标签时会发生什么?

问题描述

在 Web 应用程序中使用多个表单标签时会发生什么?

我在母版页中使用表单标签,在子页中使用 alos。但它显示错误。

标签: asp.netwebforms

解决方案


在 Web 应用程序中使用多个表单标签时会发生什么?

您可以<form>在页面中使用任意数量的元素(尽管它们不能嵌套)。但是,正如您所注意到的,每个组合实例中只能有一个<form runat="server">元素 Page.master(即当前页面周围所有组合页面的控件布局.aspx以及任何子实例Control.ascxUserControl 实例)。

这是因为 ASP.NET WebForms 是围绕每个用户的操作(按钮单击、<select>选择更改、单选按钮单击等)将触发“整个页面回发”的假设构建的,该操作将重新加载整个页面一个POST响应,它(与 结合__VIEWSTATE)会将类似于 VB6 桌面表单的模型带到网络上。

...但这要追溯到 2001 年 ASP.NET WebForms 发布时,从那时起,每个人都意识到 WebForms 的“回发”模型是一个巨大的错误,并且确实破坏了网络(因为它破坏了后退按钮,它破坏了刷新按钮,它打破了 HTTP 方法的语义,它将 Web 从一个可扩展的无状态系统转变为一个可怕的有状态系统,除了稍微浅一点的初始学习曲线外,对任何人都没有真正的好处从未离开过 Visual Basic 舒适区的软件开发人员)。

简而言之:停止使用 ASP.NET WebForms 并尽快迁移到 ASP.NET MVC。


推荐阅读