ASP.net页面上的表单标记

ASP.net页面上的表单标记,asp.net,Asp.net,我有一个web应用程序,它有一个从数据库加载内容的页面。我希望能够将表单放入动态内容中,但.net不允许内部表单执行其操作。有没有一种方法可以让我在动态内容页上获取表单 --编辑-- 我想我需要澄清一些事情。这是一个从数据库加载内容的aspx页面。据我所知,我从db中提取并粘贴在标签中的文本从来没有被.net wp编译或处理过,因此我无法使用隐藏的代码来解决此问题。不适用于webforms,不适用。您必须使用连接到按钮的事件处理程序来处理一个完整的页面表单。幸运的是,这很容易做到: foo.as

我有一个web应用程序,它有一个从数据库加载内容的页面。我希望能够将表单放入动态内容中,但.net不允许内部表单执行其操作。有没有一种方法可以让我在动态内容页上获取表单

--编辑--


我想我需要澄清一些事情。这是一个从数据库加载内容的aspx页面。据我所知,我从db中提取并粘贴在标签中的文本从来没有被.net wp编译或处理过,因此我无法使用隐藏的代码来解决此问题。

不适用于webforms,不适用。您必须使用连接到
按钮的事件处理程序来处理一个完整的页面表单。幸运的是,这很容易做到:

foo.aspx:

...
<asp:TextBox id="txtFoo" runat="server" />
<asp:Button id="btnFoo" runat="server" onclick="btnFoo_Click />
...

页面上只能有一个表单(asp表单);你必须用那种形式


为了澄清这一点,只能处理一个表单。

您必须通过在“子表单”提交按钮中添加服务器端单击事件处理程序来处理回发(这就是web表单处理同一页面上多个提交类型buuton的方式)或者,如果你不想得到完整的回帖,那么就用AJAX做一些聪明的事情

我以前遇到过这个问题。我所做的一个变通方法是将我希望执行操作的代码放在asp:面板中。使用面板,您可以将“DefaultButton”属性设置为面板内部的按钮,单击按钮(或按“enter”)将触发该按钮的单击事件。当我有一个包含唯一允许的asp:form的母版页时,如果想通过按enter键提交“表单”,我发现这非常方便


希望这能有所帮助。

这是一个常见的问题,当您希望向第三方网站(例如PayPal按钮)提供非回发表单时

出现此问题的原因是HTML不允许在表单中包含表单,而且大多数ASP.NET页面在HTML(或母版页)中都有一个“high up”(高级)

我最喜欢的解决方案是隐藏“high-up”表单标记,同时仍然显示所有内容。然后,你可以随意将任何你想要的标签放在身体里。如果动态执行此操作,则可以逐页选择具有自定义表单的页面

我创建了一个名为GhostForm.cs的类来处理这个问题。您可以在此处阅读所有相关内容:


Dino Esposito在MSDN杂志上发表了一篇文章,介绍了如何在ASP.Net中处理多个表单或“模拟”子表单,这可能会回答您的所有问题


任何一种解决方法都会很粗糙,而且非常难看。根据设计,asp.net使用表单标记发布和获取数据。这就是为什么他们称之为Web表单应用程序。Html不允许嵌套表单。您要做的是在代码隐藏中使用WebRequest

如果你正在尝试贝宝按钮之类的东西,你可以简单地使用这样的东西

标记:

<div id="PayPalButtonContainer" runat="server"></div>

当我第一次遇到这个问题时,我发现对我来说最简单的解决方案是简单地复制和粘贴母版页,并给它一个稍微不同的名称,比如:

SiteNameMasterPage      'Default page with FORM tag
SiteNameMasterPageNF    'No Form tag
然后根据我是否需要表单标签,只需更改内容页顶部的母版页链接,如下所示

<%@ Page Title="" Language="VB" MasterPageFile="~/SiteName.master" %>
<%@ MasterType VirtualPath="~/SiteName.master" %>
<!-- This masterpage has the default FORM tag -->



然后在内容页面中,无论我想在哪里放置表单,我都可以包含
标签

您可以在一个页面上添加您想要的表单数量,但只能添加一个带有标签
runat=“server”
SiteNameMasterPage      'Default page with FORM tag
SiteNameMasterPageNF    'No Form tag
<%@ Page Title="" Language="VB" MasterPageFile="~/SiteName.master" %>
<%@ MasterType VirtualPath="~/SiteName.master" %>
<!-- This masterpage has the default FORM tag -->
<%@ Page Title="" Language="VB" MasterPageFile="~/SiteNameNF.master" %>
<%@ MasterType VirtualPath="~/SiteNameNF.master" %>
<!-- This masterpage does NOT have the default FORM tag -->