【问题标题】:can I run multiple server side forms in asp .net我可以在 asp .net 中运行多个服务器端表单吗
【发布时间】:2014-10-18 07:55:10
【问题描述】:

在我的项目中,我想在一个网页中运行 2 个表单,该网页是母版页,一个用于联系我们,一个用于注册用户。但不允许使用多个服务器端表单。有什么解决办法吗?

【问题讨论】:

标签: asp.net forms


【解决方案1】:

您可以使用 Asp.net Webforms 的回发功能。 您应该创建一个按钮用于singup,另一个按钮用于联系。你可以在服务器端捕获事件,然后做你想做的事。

【讨论】:

    【解决方案2】:

    您可以在母版页中创建使用 HTML 创建的常规客户端表单,并使用 Request.Form 来读取发布的数据。为此,所有input 元素都必须有一个名称,您可以使用Request.Form["ElementName"] 读取它们。

    考虑到表单不能嵌套。

    所以,您的母版页需要像这样

    ...
    <body>
       <form id="form1" runat="server">
       </form>
       <form id="contact" action="Contact.aspx" method="post">
           <input type="text" name="Message"/>
           <input type="submit" value="Contact us!"/>
       </form>
    </body>
    

    第一个&lt;form&gt;是常规的ASP.NET服务端形式,支持服务端组件

    第二个&lt;form&gt; 是一个自定义HTML 表单。它没有runat="server" 属性,并且位于服务器端&lt;form&gt; 之外。

    第二个表单动作指向.aspx 页面。在其页面加载事件中,您可以使用Request.Form["Name"] 访问联系表单的名称。请注意,您还需要包含一个提交按钮来将数据发送到服务器,以及一个method="post" 来指定发送页面的方法。

    这是诉诸“基本”HTML 控件,因此没有视图状态,如果未在服务器中重置发布的值,它们将丢失。 IE。如果表单已发布,并且出现错误,则在再次渲染页面时,之前发布的值将丢失。

    如果您想让它更复杂,您可以使用 Javascript 和可选的 AJAX。但这是一个更复杂的解决方案。 See this for an example.

    【讨论】:

      【解决方案3】:

      ASP.NET 表单仅支持一种表单。您可以使用 iFrame 并在 iFrame 内呈现您的第二页(第二个表单)。

      这是一篇关于在标签后放置一些页面内容的有趣帖子。这可能对您有帮助。

      http://forums.asp.net/t/1611822.aspx?Dynamically+adding+content+to+page+outside+of+the+aspnet+form+from+within+a+UC

      【讨论】:

        猜你喜欢
        • 2019-10-09
        • 1970-01-01
        • 2015-09-22
        • 1970-01-01
        • 2023-03-17
        • 1970-01-01
        • 2019-11-27
        • 2019-10-06
        • 2021-12-11
        相关资源
        最近更新 更多