ระบบนำทางของ ASP.NET 2.0 ช่วยให้การพัฒนาเว็บสะดวกขึ้น แต่ผู้ใช้ที่เคยใช้แล้วจะพบว่าระบบนำทางมีข้อบกพร่องใหญ่: คุณต้องเขียน web.sitemap ด้วยตนเอง และไวยากรณ์ของ web.sitemap คือ นิยมใช้คำว่า "ค่อนข้างง่าย" แต่ในการใช้งานจริงถึงแม้จะเรียบง่ายแต่คุณจะทำผิดพลาดกับการนำทางที่ซับซ้อนเล็กน้อยอย่างแน่นอน ทำไม ด้านล่างนี้เป็นแผนผังเว็บไซต์แบบธรรมดา
<siteMap>
<siteMapNode title="หน้าแรก" url="~/default.aspx" >
< siteMapNode title = "บทนำสู่ ASP.NET" url = "~/introduction/default.aspx">
<siteMapNode title="มีอะไรใหม่ใน Whidbey?" url="~/introduction/whatsnew.aspx"/>
<siteMapNode title="ตัวอย่างแอปพลิเคชัน (ชุดเริ่มต้น)" url="~/introduction/starterkits.aspx"/>
<siteMapNode title="บทนำสู่ Visual Web Developer" url="~/introduction/vwd.aspx"/>
</siteMapNode>
<siteMapNode title="การสร้างแอปพลิเคชันเว็บ" url="~/development/default.aspx">
<siteMapNode title="การสร้างแอปพลิเคชันอย่างง่าย" url="~/development/simple/default.aspx">
<siteMapNode title="บทนำสู่เพจ ASP.NET" url="~/development/simple/pages.aspx"/>
<siteMapNode title="บทนำเกี่ยวกับการควบคุมเซิร์ฟเวอร์" url="~/development/simple/servercontrols.aspx"/>
<siteMapNode title="อินไลน์เทียบกับโค้ดเบื้องหลังเพจ" url="~/development/simple/codeseparation.aspx"/>
<siteMapNode title="การแชร์โค้ดระหว่างเพจ" url="~/development/simple/codedirectory.aspx"/>
</siteMapNode>
</siteMap>
พูดตรงๆ มันเป็นเพียงการซ้อนของ siteMapNode บางส่วน แต่การเปิดและปิดการตอบสนองที่ซ้อนกันนั้นสร้างความรำคาญให้กับมนุษย์อย่างแน่นอน แต่สำหรับคอมพิวเตอร์ พวกเขาชอบที่จะจัดการกับความสัมพันธ์ง่ายๆ เหล่านี้ เพื่อให้เราสามารถ เขียนไฟล์ที่อนุญาตให้ระบบดึงข้อมูลเพจของแอปพลิเคชันปัจจุบันโดยอัตโนมัติและสร้างการนำทางโดยอัตโนมัติ
miclae เขียนบทความ ฉันได้เขียนมันใหม่ในภาษา C# และคอมไพล์เป็นไฟล์ DLL ตอนนี้คุณเพียงแค่คัดลอกไฟล์ DLL ไปยังไดเร็กทอรี bin ของโปรเจ็กต์ของคุณ และตั้งค่าการควบคุมการนำทาง (เมนู treeview) เพื่ออ้างอิง DLL เมื่อทำงาน ระบบจะสร้างระบบนำทางตามไฟล์ไดเร็กทอรีของคุณโดยอัตโนมัติ
แน่นอนว่าฟังก์ชันของไฟล์ DLL นี้มีอะไรมากกว่านั้นมาก โดยจะลบ APP_* และไดเร็กทอรี bin โดยอัตโนมัติ หากต้องการ คุณสามารถกำหนดค่าใน web.config และบอกให้ dll ไม่แสดงไดเร็กทอรีบางรายการได้
ตอนนี้คุณไม่จำเป็นต้องแก้ไข web.sitemap อีกต่อไปเมื่อเพิ่ม/ลบไฟล์
http://www.cnblogs.com/mqingqing123/archive/2006/09/04/494616.html