gpt4 book ai didi

asp.net - ASP.NET 母版页和内容页中的表单元素

转载 作者:行者123 更新时间:2023-12-02 05:22:54 24 4
gpt4 key购买 nike

好的,我当前项目中的另一个障碍。

我的母版页和内容页中从未有过表单元素,我倾向于在相关的内容中包含所有表单。

然而,在当前的项目中,我们有一个他们想要两者的页面。 右上角有一个登录表单,内容中有一个问题表单。

在尝试解决此问题后,我遇到了 ASP.NET 提示母版页中需要单个表单元素的问题。说实话,我真的不明白为什么这是 ASP.NET 的要求,但是嘿嘿。

有谁知道我是否/如何使母版页和内容页包含独立工作的表单元素?

如果没有,您能否提供有关如何继续获得所需外观/功能的建议?

最佳答案

我想回顾一下我的一些悬而未决的问题,看看是否可以解决其中的一些问题。

这个很有趣。我完全不相信 ASP.NET 页面上只能有一个表单。这对我来说毫无意义。我见过很多网页上有多个表单,为什么 ASP.NET 页面应该有所不同?

所以,这让我思考。

为什么 ASP.NET 页面需要表单元素?

ASP.NET 页面尝试通过 PostBack 模型提供状态持久性来模拟 WinForms 环境。这为无状态环境提供了状态元素。为了做到这一点,运行时需要能够在每个“表单”内维护此状态。它通过将数据发回给自身来实现这一点。需要注意的是:

  • PostBack 并没有什么特别之处。
  • 它使用来自任何其他堆栈的 HTTP 表单和 POST,与任何其他表单相同。
  • 只是因为它看起来可能在做一些特殊的事情,但事实并非如此,所发生的只是它 POST 返回了一些有关导致它发生的原因的信息,因此您可以在服务器端代码中执行诸如处理客户端事件之类的操作.

那为什么只有一个?

这对我来说是一个百万英镑的问题(我是英国人)。我知道 ASP.NET 需要这个,特别是如果您使用 ASP.NET 服务器控件,但是为什么我不能制作自己的附加表单?

所以,我想管它呢,制作你自己的表格!

我做到了。我添加了一个沼泽标准的简单表单,其中提交操作为“#”。然后,这将使用请求中给定表单的表单数据对当前页面执行 POST。

你猜怎么着?一切都很好。所以我最终得到:

  • 母版页,其中包含 HTML 表单
  • 此表单回传到当前页面(基本上是使用母版的页面)。
  • 在主服务器的 Page_Load 代码隐藏中,我添加了代码来检查请求以查看请求中传递了哪些数据。如果它包含数据(比如隐藏字段),那么我知道该帖子来自母版页上的表单,如果不包含,那么它很可能是来自内容的回发,可以忽略。
  • 然后我用 <form runat="server" id="aspNetForm"...> </form> 包围内容标签标签。这意味着所有内容页面都会自动有一个可以使用的表单。

这为我的问题提供了一个相对简单、干净的解决方案。我的登录表单与创建的所有内容表单配合得很好,其中一些是复杂的表单,另一些则使用大量服务器控件和许多回发,等等。

我希望这对其他人有帮助。

关于asp.net - ASP.NET 母版页和内容页中的表单元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/178396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com