Kürzlich habe ich bei der Verwendung der von ms in .net2.0 bereitgestellten Seitennavigationskomponente Sitemappath über einen einfachen und praktischen Mechanismus nachgedacht, um das Problem der Desynchronisierung von Seitentiteln zu
lösen
es mit jedem.
Aktuelle Probleme:
1. Normalerweise gibt es keinen einheitlichen Speicherort für ASPX-Seitentitel auf der gesamten Website. Für jede Seite ist der Seitentitel entweder direkt in der ASPX-Datei der Seite fest codiert oder dynamisch über aspx.cs eingeschrieben (zusätzliche Titel). werden auch in 1.1 Control hinzugefügt, die Page.Title-Eigenschaft kann in 2.0 verwendet werden), und wenn die gesamte Site viele Webseiten hat, muss dieser sich wiederholende Logikcode viele Male geschrieben werden, was äußerst unansehnlich ist und nicht sein kann an anderen Stellen synchronisiert, an denen Titelinformationen verwendet werden.
2. Selbst wenn alle Seitentitel in Ressourcendateien (oder XML-Dateien) abgelegt werden, um die Unterstützung mehrerer Sprachen zu unterstützen, wird es ein Problem beim Laden von Titeln über den Tongyi-Programmcode geben, d. h. an den Stellen, an denen Seitentitel in verwendet werden Seite möglicherweise nicht nur Im Titelbereich (z. B. Seitennavigationssteuerelement) ist es auch ein Problem, wie diese Steuerelemente auch die Titelinformationen aus diesen Ressourcendateien (oder XML) abrufen können.
Was soll erreicht werden:
1. Lösen Sie alle Probleme mit Webseitentiteln auf einmal in der Hauptvorlage der gesamten Website. Die auf allen Websites verwendeten Titel werden in Web.sitemap verwaltet (kann mehrere Sprachen unterstützen), sodass auch die Navigationsinformationen der Seite beibehalten werden können gleichzeitig.
2. Fügen Sie den Site-Namen automatisch nach jedem Website-Titel im Titel des Popup-Formulars hinzu, z. B. (Benutzeranmeldung | Qisi Software). Wenn Sie jedoch im Seitennavigationssteuerelement auf den Titel verweisen, wird der Site-Name nicht angezeigt, z als (Startseite>Mitgliedercenter>Benutzeranmeldung).
3. Wenn im aspx.cs-Programm auf das Attribut „page.Title“ verwiesen wird, kann beispielsweise kein Site-Name angezeigt werden (Benutzeranmeldung | Qisi Software), sondern der Wert „page.Title“, auf den im Normalfall verwiesen wird Programm der Seite ist (Benutzeranmeldung).
Die spezifische Implementierungsmethode ist wie folgt:
Fügen Sie den folgenden Code zur Masterseite der Website hinzu:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.searchDescription.Content = this.SearchDescription;
this.searchKeywords.Content = this.SearchKeywords;
}
if (SiteMap.CurrentNode != null)
{
this.Page.Title = SiteMap.CurrentNode.Title;
}
anders
{
this.Page.Title = „Diese Seitennavigation wurde nicht in Web.sitemap konfiguriert“;
}
}
protected override void Render(HtmlTextWriter-Writer)
{
this.Page.Title = this.Page.Title + " | " + Keyss.WebFramework.ConfigManager.GetInstance().SiteName;
base.Render(writer);
}
erklären:
1. Der Grund, warum die Seitenbeurteilung im Block (!this.IsPostBack){} nicht implementiert ist, liegt darin, dass der Ansichtsstatus nicht in page.Title gespeichert werden kann. Ich denke, dass dies ein kleiner Fehler in .net2.0 ist.
2. Der Grund, warum das Titelattribut in der Render-Methode neu geschrieben wird, liegt darin, dass die Render-Methode den Ansichtsstatus während der Lebensdauer der Seite und der Seite nicht speichert. Der von der Seite geschriebene Titelinhalt ist nur in der Masterseite gültig, da die Masterseite ist für das Rendern des Seitentitels verantwortlich. Das Rendern des Titels hat keinen Einfluss auf das Rendering-Ergebnis.
Quelle: Qisi Software BLOG