[英]Placeholder Code still visible when “view source code”, even though placeholder visible property set to false from code behind
<asp:PlaceHolder ID="pnlThanks" runat="server" Visible="false">
<p><asp:Literal ID="lblReceipt" runat="server"></asp:Literal></p>
</asp:PlaceHolder>
<asp:PlaceHolder ID="pnlForm" runat="server" Visible="true">
<form id="form1" runat="server" class="busgroup-form">
//// All form controls
</form>
</asp:PlaceHolder>
代碼隱藏文件:
Protected Sub submit_Click(ByVal sender As Object, ByVal e As EventArgs) Handles cmdsubmit.Click
form1.Controls.Clear()
pnlForm.Visible = False
pnlThanks.Visible = True
End Sub
因此,在“pnlThanks”占位符可見后提交表單后,我可以看到頁面上顯示的正確內容。 但是當我在瀏覽器上“查看源代碼”時,我看到了表單的源代碼而不是“pnlThanks”占位符中的內容。
我究竟做錯了什么 ?
您需要在<form>
標記內包含所有控件,因為ASP.NET依賴於form
來進行回發等。
您的頁面中只能有一個<form>
標記。
將您的代碼更改為:
<form id="form1" runat="server" class="busgroup-form">
<asp:PlaceHolder ID="pnlThanks" runat="server" Visible="false">
<p><asp:Literal ID="lblReceipt" runat="server"></asp:Literal></p>
</asp:PlaceHolder>
<asp:PlaceHolder ID="pnlForm" runat="server" Visible="true">
</asp:PlaceHolder>
</form>
我測試時,您的代碼按預期工作。 我的猜測是你的代碼中有另一個pnlForm.Visible = True
在你的回發上執行。
如果visible = false,則不呈現pnlThanks,因此它不會在源中顯示。 您可以使用CSS(display = none)在啟動時隱藏它並在需要時更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.