ฉันเห็นวิธีแก้ปัญหาที่ดีในเว็บไซต์ของชาวต่างชาติ ดังนั้นฉันจึงรวบรวมมัน:
ในแอปพลิเคชัน ASP.NET มักจำเป็นต้องปรับเปลี่ยนชื่อเรื่องของเพจแบบไดนามิก ตัวอย่างทั่วไปคือในตัวควบคุมการนำทางเพจ ซึ่งลิงก์ที่ผู้ใช้คาดว่าจะคลิก เนื้อหาที่เกี่ยวข้องจะแสดงใน ชื่อของหน้า ตัวอย่างเช่น เว็บไซต์มีโครงสร้างเว็บไซต์ดังต่อไปนี้:
หากมีประเภทหนังสือ และมีหนังสือภาษาจีนและประเภทหนังสือต่างประเทศ โดยทั่วไปคุณสามารถใช้รูปร่างแบบต้นไม้หรือตัวควบคุมแถบนำทางใหม่ของ asp.net 2.0 ได้
(แผนผังเว็บไซต์) เพื่อให้บรรลุ เช่น
หนังสือ--->หนังสือภาษาจีน
หนังสือ---->หนังสือต่างประเทศ ฯลฯ และหากในขณะนี้สามารถแสดงเช่น "หนังสือ-->หนังสือภาษาจีน" ในส่วน <title> ของหน้าได้ ก็จะดูเข้าใจง่ายและชัดเจนยิ่งขึ้น
ใน asp.net 2.0 เราสามารถใช้การควบคุมฝั่งเซิร์ฟเวอร์ในส่วน <head> เพื่อให้บรรลุเป้าหมายนี้ ขั้นแรกเราต้องเพิ่มแท็ก
<head runat="server">
จากนั้นคุณสามารถเปลี่ยนชื่อเนื้อหาในเหตุการณ์ page_load ในรูปแบบต่อไปนี้ เช่น
Page.Header.Title = "เวลาปัจจุบันคือ: " & DateTime.Now.ToString()
หรือเขียนเป็น page.title ก็ได้
ได้
ด้วยวิธีนี้
Const DEFAULT_PAGE_TITLE As String = "ยินดีต้อนรับสู่เว็บไซต์ของฉัน!!"
Page_Load ย่อยที่ได้รับการป้องกัน (ผู้ส่ง ByVal As Object, ByVal e As System.EventArgs) จัดการ Me.Load
'ตั้งชื่อเพจถ้าจำเป็น'
ถ้า String.IsNullOrEmpty(Page.Title) OrElse Page.Title = DEFAULT_UNNAMED_PAGE_TITLE แล้ว
ถ้า SiteMap.CurrentNode ไม่มีอะไรแล้ว
Page.Title = DEFAULT_PAGE_TITLE
อื่น
Page.Title = GetPageTitleBasedOnSiteNavigation()
'สามารถใช้สิ่งต่อไปนี้ได้หากคุณต้องการ
'Page.Title = GetPageTitleBasedOnSiteNavigationUsingRecursion (SiteMap.CurrentNode)
สิ้นสุดถ้า
สิ้นสุดถ้า
สิ้นสุด
ฟังก์ชันส่วนตัวย่อย GetPageTitleBasedOnSiteNavigation() เป็นสตริง
ถ้า SiteMap.CurrentNode ไม่มีอะไรแล้ว
โยน ArgumentException ใหม่ ("currentNode ไม่สามารถเป็นอะไรเลย")
สิ้นสุด หาก
'เรากำลังเยี่ยมชมเพจที่กำหนดไว้ในแผนผังเว็บไซต์ - สร้างชื่อเพจขึ้นมา
'ขึ้นอยู่กับตำแหน่งของโหนดแผนผังเว็บไซต์ในลำดับชั้น
Dim เอาต์พุต As String = String.Empty
Dim currentNode As SiteMapNode = SiteMap.CurrentNode
ในขณะที่ currentNode ไม่ใช่อะไรเลย
ถ้าเอาต์พุตความยาว > 0 แล้ว
เอาท์พุท = currentNode.Title & " :: " & เอาท์พุท
อื่น
เอาท์พุท = currentNode.Title
สิ้นสุดถ้า
currentNode = currentNode.ParentNode
สิ้นสุดในขณะ
ที่ส่งคืนเอาต์พุต
ฟังก์ชันสิ้นสุด
จะกำหนดค่าคงที่สองตัวไว้ล่วงหน้า จากนั้นจึงค่อย ๆ สร้างโหนดของแผนผังไซต์ ที่จุดเริ่มต้น โหนดจะเป็นโมฆะ จากนั้นจึงเรียกใช้
GetPageTitleBasedOnSiteNavigation() กระบวนการนี้สามารถนำไปใช้ได้โดยการเชื่อมต่อแต่ละโหนดแผนผังเว็บไซต์ด้วยสตริง และสุดท้ายก็ส่งคืนไปยัง page.title แน่นอนว่าสามารถนำไปใช้แบบวนซ้ำได้เช่นกัน
ที่มา: http://jackyrong.cnblogs.com/archive/2006/05/15/400345.html