如果内容页不包含 <form> 标签,仅在母版页中包含表单标签?
Include form tag only in master page if content page not contains <form> tag?
我在需要 <Form>
标签的母版页中使用 <asp:ScriptManager>
和 link
,但问题是我已经在所有子内容中包含了 <form>
标签页数。
我知道我只需要在母版页中包含 <form>
标签并从所有子页中删除但不幸的是这是不可能的,因为有太多的内容子页连接到这个母版页而且每个子 <form>
标签包含不同的 类 像 horizental
inline
等
所以我只想在 content/child 页面中不存在 form
标签时只在母版页中包含 <form>
标签。
如果我同时在 master 和 child/content 中使用,它会显示错误,它必须有 1 个表单标签。
主页
<form id="Form2" runat="server" novalidate="" role="form" runat="server" class="form-horizontal">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<h3>Session Idle: <span id="secondsIdle"></span> 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 <span id="seconds"></span> 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>
我只想在不在子页面中使用 form
标签。我该如何解决这种情况,
谢谢,
据我所知,ASP.NET
WebForms
不支持具有 runat="server"
属性的多个 form
元素。因此,没有解决这个问题的方法,因为它是硬编码到项目中的东西。
总之,假设有一千个子页面也有 form
元素和 runat="server"
属性,而你懒得全部替换一个接一个,然后你可以使用Visual Studio
的文本替换功能并且可以将form
元素更改为div
元素。为此,您只需要按 Ctrl
+ H
这将在右上角打开一个 window 询问您要替换的文本和您想要的另一个文本那个。参见:
注意我分享的截图,我从下拉菜单中选择当前项目。这将搜索并替换项目中 <form
到 <div
的每个文本。
一旦它将所有以 <form
开头的标签替换为 <div
,您就可以修改 form
标签的结束文本,将 </form
替换为 </div
。现在你只剩下一页了。
现在,只剩下 MasterPage
,您可以将 div
替换回 form
。所以,通过这种方式,您只需要手动更改一页。
您需要单击第二个按钮来替换所有值。您还可以使用其他选项来处理查找和替换。但是,不幸的是,您不能拥有多个带有 runat="server"
属性的 form
标签。
PS
它不会对您的设计造成问题,类 例如 horizontal inline
将应用于那些 divs
而不是 forms
并且将呈现与 forms
在 UI.
上呈现
在批量修改内容或更改重要且可能导致混乱的内容之前,采取 backup
始终是一个好方法。
我在需要 <Form>
标签的母版页中使用 <asp:ScriptManager>
和 link
,但问题是我已经在所有子内容中包含了 <form>
标签页数。
我知道我只需要在母版页中包含 <form>
标签并从所有子页中删除但不幸的是这是不可能的,因为有太多的内容子页连接到这个母版页而且每个子 <form>
标签包含不同的 类 像 horizental
inline
等
所以我只想在 content/child 页面中不存在 form
标签时只在母版页中包含 <form>
标签。
如果我同时在 master 和 child/content 中使用,它会显示错误,它必须有 1 个表单标签。
主页
<form id="Form2" runat="server" novalidate="" role="form" runat="server" class="form-horizontal">
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<h3>Session Idle: <span id="secondsIdle"></span> 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 <span id="seconds"></span> 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>
我只想在不在子页面中使用 form
标签。我该如何解决这种情况,
谢谢,
据我所知,ASP.NET
WebForms
不支持具有 runat="server"
属性的多个 form
元素。因此,没有解决这个问题的方法,因为它是硬编码到项目中的东西。
总之,假设有一千个子页面也有 form
元素和 runat="server"
属性,而你懒得全部替换一个接一个,然后你可以使用Visual Studio
的文本替换功能并且可以将form
元素更改为div
元素。为此,您只需要按 Ctrl
+ H
这将在右上角打开一个 window 询问您要替换的文本和您想要的另一个文本那个。参见:
注意我分享的截图,我从下拉菜单中选择当前项目。这将搜索并替换项目中 <form
到 <div
的每个文本。
一旦它将所有以 <form
开头的标签替换为 <div
,您就可以修改 form
标签的结束文本,将 </form
替换为 </div
。现在你只剩下一页了。
现在,只剩下 MasterPage
,您可以将 div
替换回 form
。所以,通过这种方式,您只需要手动更改一页。
您需要单击第二个按钮来替换所有值。您还可以使用其他选项来处理查找和替换。但是,不幸的是,您不能拥有多个带有 runat="server"
属性的 form
标签。
PS
它不会对您的设计造成问题,类 例如 horizontal inline
将应用于那些 divs
而不是 forms
并且将呈现与 forms
在 UI.
在批量修改内容或更改重要且可能导致混乱的内容之前,采取 backup
始终是一个好方法。