如果内容页面不包含<form>标记,仅在母版页中包含表单标记?

问题描述

我在母版页中使用<asp:ScriptManager>link,它们需要<Form>标签,但是这里的问题是我已经在所有子内容页面中包含了<form>标签

我知道我只需要在母版页中添加<form>标记并将其从所有子页中删除,但是不幸的是,这是不可能的,因为有太多内容子页连接到该母版页,并且每个子页{ {1}}标签包含<form> horizental等不同的类。

因此,我只希望如果内容/子页面中不存在inline标签,则仅在母版页中包含<form>标签

如果我同时在母版和子/内容中使用它,则显示错误,必须是1个表单标签

母版页

form

仅当不在子页面中时,我只想使用<form id="Form2" runat="server" novalidate="" role="form" runat="server" class="form-horizontal"> <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager> <h3>Session Idle:&nbsp;<span id="secondsIdle"></span>&nbsp;seconds.</h3> <asp:LinkButton ID="lnkFake" runat="server" /> <cc1:modalpopupextender id="mpeTimeout" behaviorid="mpeTimeout" runat="server" popupcontrolid="pnlPopup" targetcontrolid="lnkFake" okcontrolid="btnYes" cancelcontrolid="btnNo" backgroundcssclass="modalBackground" onokscript="ResetSession()"> </cc1:modalpopupextender> <asp:Panel ID="pnlPopup" runat="server" CssClass="modalPopup" Style="display: none"> <div class="header"> Session Expiring! </div> <div class="body"> Your Session will expire in&nbsp;<span id="seconds"></span>&nbsp;seconds.<br /> Do you want to reset? </div> <div class="footer" align="right"> <asp:Button ID="btnYes" runat="server" Text="Yes" CssClass="yes" /> <asp:Button ID="btnNo" runat="server" Text="No" CssClass="no" /> </div> </asp:Panel> <asp:ContentPlaceHolder ID="body" runat="server"> </asp:ContentPlaceHolder> </form> 标签。我该如何解决这种情况,

谢谢

解决方法

据我所知,ASP.NET WebForms不支持具有form属性的多个runat="server"元素。因此,对此没有任何解决方法,因为它已硬编码到项目中。

无论如何,如果假设有一千个子页面也具有form属性的runat="server"元素,而您又懒得一一替换所有子页面,然后,您可以使用Visual Studio的文本替换功能,并将form元素更改为div元素。为此,您只需要按Ctrl + H,这将在右上角打开一个小窗口,询问您要替换的文本以及您要替换的其他文本。参见:

Sample Screenshot

我共享的屏幕快照中的通知,我从下拉菜单中选择当前项目。这将在项目中用<form<div搜索并替换每个文本。

一旦将所有以<form开头的标签替换为<div,则可以通过将form替换为{{1 }}。现在您只剩下一页了。 Second Sample Screenshot

现在,只剩下</form了,您可以将</div替换回MasterPage。因此,通过这种方式,您只需手动更改一页。

您需要单击第二个按钮,它将替换所有值。您还可以使用其他选项来处理查找和替换。但是,不幸的是,您不能在上面带有div属性的多个form标签。

PS
它不会对您拥有的设计造成问题,并且form之类的类将应用于runat="server"而不是horizontal inline,并且将与divs相同在用户界面上呈现。

在大量修改或更改至关重要的内容之前,采取forms总是一种好方法。