欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

在MVC下怎么用XML實現(xiàn)breadcrumbs導(dǎo)航欄

小編給大家分享一下在MVC下怎么用XML實現(xiàn)breadcrumbs導(dǎo)航欄,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

專注于為中小企業(yè)提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作、外貿(mào)網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)十堰鄖陽免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

先看下樣子在MVC下怎么用XML實現(xiàn)breadcrumbs導(dǎo)航欄

像這種導(dǎo)航欄(breadcrumbs)在mvc下我們來實現(xiàn)他。我們采用XML來實現(xiàn)這個功能。

1.首先做個準(zhǔn)備,我們編寫rounting規(guī)則(順便提一句,我們要用到rounting功能,所以規(guī)則必須寫正確,不然出不來喔)

代碼如下

public static void RegisterRoutes(RouteCollection routes)          {              routes.IgnoreRoute("{resource}.axd/{*pathInfo}");              routes.MapRoute(               "inner",                                              // Route name               "resume/test/inner/{action}/{id}",                           // URL with parameters               new { controller = "inner", action = "Index", id = "" }  // Parameter defaults               );              routes.MapRoute(             "test",                                              // Route name             "resume/test/{action}/{id}",                           // URL with parameters             new { controller = "test", action = "Index", id = "" }  // Parameter defaults             );              routes.MapRoute(                  "Default",                                              // Route name                  "{controller}/{action}/{id}",                           // URL with parameters                  new { controller = "Home", action = "Index", id = "" },                  new { controller = "^(?!(test|inner)).*$", action = "^(?!test).*$" }              );            }

我們加了兩個規(guī)則

/resume/test

和/resume/test/inner

2.編寫用到的XML文件,注意是樹形結(jié)構(gòu)的

在models寫個Navigator.xml

<?<?xml version="1.0" encoding="utf-8" ?> <node Title="首頁"  Description="潘峰的網(wǎng)站" Action="Index" Controller="Home">   <node Title="簡歷" Description="在線簡歷" Action="Index" Controller="Resume">     <node Title="Test" Description="Test" Action="Index" Controller="test">       <node Title="inner" Description="inner" Action="Index" Controller="inner">       </node>     </node>   </node> </node>

3.編寫我們的類文件來實現(xiàn)Navigator

在models寫個navigatorHelper.cs

using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Xml;  using System.Xml.Linq;  using System.Web.Routing;  using System.Web.Mvc;  using System.IO;  using System.Text;   namespace conansoft.Helpers  {      public static class MenuHelper      {          private static HttpServerUtilityBase Server = null;
  •         private static HttpRequestBase Request = null;  

  •         private static UrlHelper Url = null;  

  •         private static RouteValueDictionary RouteDictionary = null;  

  •         public static string Navigator(this HtmlHelper helper)  

  •         {  

  •             Server = helper.ViewContext.RequestContext.HttpContext.Server;  

  •             Request = helper.ViewContext.RequestContext.HttpContext.Request;  

  •             Url = new UrlHelper(helper.ViewContext.RequestContext);  

  •             RouteDictionary = helper.ViewContext.RequestContext.RouteData.Values;  

  •             string xmlPath = Server.MapPath(Url.Content("~/Models/Navigator.xml"));  

  •             XDocument doc = XDocument.Load(xmlPath);  

  •             XElement node = FindNode(doc.Root);  

  •             StringBuilder sb = new StringBuilder();  

  •             Stack s = new Stack();  

  •             while (node != null)  

  •             {  

  •                 s.Push(node);  

  •                 nodenode = node.Parent;  

  •             }  

  •             //輸出breadcrumbs.可以自行修改使之符合你的要求  

  •             while (s.Count() != 0)  

  •             {  

  •                 node = s.Pop();  

  •                 if (UrlEqual(node))  

  •                 {  

  •                     sb.AppendLine(string.Format("{0}", node.Attribute("Title").Value, node.Attribute("Description").Value));  

  •                 }  

  •                 else  

  •                 {  

  •                     sb.AppendLine(string.Format("{0}", node.Attribute("Title").Value,  

  •                         Url.Action(node.Attribute("Action").Value, node.Attribute("Controller").Value),  

  •                         node.Attribute("Description").Value));  

  •                     sb.AppendLine(" > ");  

  •                 }  

  •             }  

  •             return sb.ToString();  

  •         }  

  •  

  •         ///   

  •         /// 查找當(dāng)前節(jié)點(diǎn)  

  •         ///   

  •         /// 當(dāng)前節(jié)點(diǎn)  

  •         /// 找到返回,找不到為空  

  •         private static XElement FindNode(XElement e)  

  •         {  

  •             XElement result = e;  

  •               

  •             

  •             if (UrlEqual(e))  

  •             {  

  •                 return e;  

  •             }  

  •             else  

  •             {  

  •                 if (e.HasElements)  

  •                 {  

  •                     foreach (XElement ee in e.Elements())  

  •                     {  

  •                         result = FindNode(ee);  

  •                     }  

  •                 }  

  •                 else  

  •                 {  

  •                     return null;  

  •                 }  

  •                 return result;  

  •             }  

  •         }  

  •  

  •         ///   

  •         /// Url是否相等  

  •         ///   

  •         /// 節(jié)點(diǎn)  

  •         private static bool UrlEqual(XElement e)  

  •         {  

  •             string url1 = Url.Action(e.Attribute("Action").Value, e.Attribute("Controller").Value).ToLower();  

  •             string url2 = Url.RouteUrl(RouteDictionary).ToLower();  

  •             return url1 == url2;  

  •         }  

  •     }  

  • 解釋一下我們利用xml文件來實現(xiàn)breadcrumbs,并且我們用action和controller來判斷是否為當(dāng)前路徑[UrlEqual]

    在網(wǎng)頁中加入

    <%=Html.Navigator() %>  <%=Html.Navigator() %>

    好了效果如下在MVC下怎么用XML實現(xiàn)breadcrumbs導(dǎo)航欄

    看完了這篇文章,相信你對“在MVC下怎么用XML實現(xiàn)breadcrumbs導(dǎo)航欄”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

    當(dāng)前題目:在MVC下怎么用XML實現(xiàn)breadcrumbs導(dǎo)航欄
    網(wǎng)站路徑:http://chinadenli.net/article34/ggpgse.html

    成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站靜態(tài)網(wǎng)站網(wǎng)頁設(shè)計公司企業(yè)建站商城網(wǎng)站網(wǎng)站維護(hù)

    廣告

    聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

    綿陽服務(wù)器托管