Asp.net
UpdatePanel asyncpostback 後頁面失去標題
我最近剛剛注意到,在我從首頁內部執行非同步回發後,我的頁面標題將重置為標準的“無標題頁面”
UpdatePanel。在從母版頁內部回發期間,標題不會失去(例如,當我點擊母版頁內的搜尋框按鈕時)。我假設通過使用不同的
contentplaceholder專門設置文件標題我會避免這樣的問題,但顯然我錯了。除了必須在 ASPX 頁面的程式碼隱藏中明確設置標題(我希望通過下面的設置方式避免這種情況)之外,我還缺少其他什麼嗎?這是我的頁面的基本要點,它呼叫了母版頁(下面的母版頁程式碼)
<asp:Content ID="Content1" ContentPlaceHolderID="title" Runat="Server"> Page Title </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="head" Runat="Server"> <script type="text/javascript"> //random javascript validators </script> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="content" Runat="Server"> <div class="title"> Account Management </div> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> //Username + Password Set Form </ContentTemplate> </asp:UpdatePanel> </asp:Content>這是母版頁。
<form>ASP.NET AJAX ScriptManager 放在正文中標記之後的第一件事。<head id="Head1" runat="server"> <title> <asp:ContentPlaceHolder id="title" runat="server"> </asp:ContentPlaceHolder> </title> //Stylesheet references <script type="text/javascript"> //Random javascript functions </script> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> </head>
您反對使用 Content Page 的 Title 屬性嗎?
<%@ Page Title="Your Page Title" Language="vb" AutoEventWireup="false" MasterPageFile="~/MasterPages/...您還可以在頁面載入中以程式方式訪問它…
我們在我們的一個網站上遇到了這個確切的問題。
立即修復是在母版頁程式碼隱藏 page_load 方法中重置標題。
顯然,當發生 ajax 呼叫時,它正在重新執行母版頁。這導致我們的標題消失了。
例如:
protected void Page_Load(object sender, EventArgs e) { this.Page.Title = "whatever title you have..."; }更好的解決方法是放棄 MS updatepanel 廢話並開始使用 JSON / jQuery,您實際上可以對呼叫進行一些不錯的控制。