【问题标题】:Dynamically create <form runat="server">动态创建 <form runat="server">
【发布时间】:2011-05-20 12:08:59
【问题描述】:

如何使用代码 (c#) 创建&lt;form runat="server" /&gt;?我的问题是我想在我的页面上有多个表单(最初没有)。我正在从 db 加载所有组件。

我到处寻找,却找不到任何关于它的信息。

【问题讨论】:

    标签: c# asp.net forms dynamic


    【解决方案1】:

    从痛苦的记忆中,在 ASP.NET-webforms 中处理多个表单是一种真正的痛苦。也许考虑看看更接近 HTML 的 ASP.NET-MVC;因此,你可以做任何你喜欢的事情。只需在视图中使用 foreach,为每个项目编写一个表单。

    【讨论】:

      【解决方案2】:

      ASP.NET 页面只能有一个“服务器端”表单。这是“核心”规则之一。

      所以你必须找到其他方法来实现你所需要的。

      您可以使用 UpdatePanels,并且“提交”特定面板应仅发送其内容,而忽略表单中的其他数据。

      【讨论】:

        【解决方案3】:

        ASP.NET 只允许一个服务器端表单,但允许在一页中有多个常规 表单。我建议你阅读这篇文章:ASP.NET Forms

        【讨论】:

          【解决方案4】:

          感谢您的回复。我在我的页面中使用它解决了它:

          public override void VerifyRenderingInServerForm(System.Web.UI.Control control)
          {
          } 
          

          然后用纯文本呈现我的表单.. 还看不到任何错误,但如果出现任何错误会更新。

          另外,正如我在问题中所说,我正在动态加载所有控件,并且我没有在控件后面使用任何代码(如果我这样做了,我想会出现一些错误)。我所有的帖子都是通过检查 HttpContext.Current.Request.Form 来处理的。

          【讨论】:

          • 如果你处理自己的输入和输出,我真的认为你会喜欢 MVC,与 webforms 的约束相比
          • 是的,我很喜欢 .NET MVC。问题是这个系统是在 .NET MVC 发布之前构建的。我很想使用 MVC 而不是这个废话;)
          猜你喜欢
          • 2012-10-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多