asp.net-mvc – 带有MVC Sitemap的Breadcrumb只显示一个级别
发布时间:2020-12-16 09:32:53 所属栏目:asp.Net 来源:网络整理
导读:我需要在Web应用程序中使用MVCSitemap提供程序,但我无法在有动态URL的地方使用它. 我有一个类别列表,可以有父母和孩子. 例如,如果我点击一个类别,面包屑看起来像这样: Home Filter 如果我点击过滤器的孩子,我得到: Filter Air filter 主页链接消失. 如果我
我需要在Web应用程序中使用MVCSitemap提供程序,但我无法在有动态URL的地方使用它.
我有一个类别列表,可以有父母和孩子. Home > Filter 如果我点击过滤器的孩子,我得到: Filter > Air filter 主页链接消失. Air filter > air filter children 等等.始终显示最后两个级别,如果我单击第一个级别,则始终返回主页. 这是在我的MvcSitemap中: <mvcSiteMapNode title="Home" controller="Home" action="Index"> <mvcSiteMapNode title="Product" controller="Product" action="SubCategories" preservedRouteParameters="selected,category,id,engineId"> <mvcSiteMapNode title="Details" controller="Product" action="ProductDetails" preservedRouteParameters="supplierName,code,name,prodId,-1"/> </mvcSiteMapNode> </mvcSiteMapNode> 这是Product controller的Subcategories方法: [MvcSiteMapNode(Title = "Article",ParentKey = "SubCategories")] [Route("{selected}-{category}-{id}-{engineId}")] public ActionResult SubCategories(string selected,string category,int id,string engineId) { ........................... SiteMaps.Current.CurrentNode.Title = categoryName; if(categoryRepository.GetCategoryByID(id).ParentId.HasValue) { int parentId = categoryRepository.GetCategoryByID(id).ParentId.Value; string parentName = categoryRepository.GetCategoryByID(parentId).Name; SiteMaps.Current.CurrentNode.ParentNode.RouteValues["id"] = id; SiteMaps.Current.CurrentNode.ParentNode.Title = parentName; } 你能帮帮我吗,我在这里做错了什么? 解决方法
这是我的样本.你可以参考一下.
第一个,我有一个站点地图: <mvcSiteMapNode title="Home" controller="Home" action="Index"> <mvcSiteMapNode title="About" controller="Home" action="About" /> <mvcSiteMapNode title="Contact" controller="Home" action="Contact" /> <mvcSiteMapNode title="Administration" clickable="false"> <mvcSiteMapNode title="User Mgmt" controller="Administration" action="UserMgmt" clickable="false" > <mvcSiteMapNode title="List Role" controller="Administration" action="ListRole" > <mvcSiteMapNode title="Details" controller="Administration" action="Details"> <mvcSiteMapNode title="XXX" controller="Administration" action="XXX" /> </mvcSiteMapNode> </mvcSiteMapNode> </mvcSiteMapNode> <mvcSiteMapNode title="Role Mgmt" controller="Home" action="RoleMgmt" /> </mvcSiteMapNode> </mvcSiteMapNode> //And then,I create a BootstrapMenuHelperModel view that load this sitemap. //I putted it at DisplayTemplates. @model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel @using MvcSiteMapProvider.Web.Html.Models @helper TopMenu(List<SiteMapNodeModel> nodeList) { <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <div class="collapse navbar-collapse"> <ul class="nav navbar-nav"> @foreach (SiteMapNodeModel node in nodeList) { string url = node.IsClickable ? node.Url : "#"; if (!node.Children.Any()) { <li><a href="@url">@node.Title</a></li> } else { <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown">@node.Title <span class="caret"></span></a> @DropDownMenu(node.Children) </li> } if (node != nodeList.Last()) { <li class="divider-vertical"></li> } } </ul> </div> </div> </nav> } @helper DropDownMenu(SiteMapNodeModelList nodeList) { <ul class="dropdown-menu" role="menu"> @foreach (SiteMapNodeModel node in nodeList) { if (node.Title == "Separator") { <li class="divider"></li> continue; } string url = node.IsClickable ? node.Url : "#"; if (!node.Children.Any()) { <li><a href="@url">@node.Title</a></li> } else { <li class="dropdown-submenu"><a href="@url">@node.Title</a>@DropDownMenu(node.Children)</li> } } </ul> } @TopMenu(Model.Nodes) //Finally,call this view from layout <div class="row"> <div class="span12"> <nav> @Html.MvcSiteMap().Menu("BootstrapMenuHelperModel") </nav> </div> </div> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 您实际可以拥有多少应用程序会话数据?
- asp.net-mvc-4 – ASP.NET MVC4自定义路由
- 子类中的ASP.NET Repeater项
- asp.net – foreach块缺少一个结束“}”字符.确保你有匹配的
- asp.net – 在.NET应用程序上使用Phantom JS生成PDF
- asp.net-mvc – 使用ViewModels,EditModels和AutoMapper参考
- asp.net-mvc – 所有请求获取HTTP错误401.2 – 未经授权的响
- asp.net-mvc – 将类应用于@ Html.ValidationMessageFor
- [WCF 4.0新特性] 标准终结点与无(.SVC)文件服务激活
- asp.net-mvc – 有没有办法让RoutePrefix以可选参数开头?
推荐文章
站长推荐
- 如何在ASP.NET gridview的标题中放置一个按钮?
- asp.net – 我的支付方式按钮不会链接到支付朋友
- asp.net-mvc – 将MVC内容文件夹放入Area
- ASP.NET c#获取屏幕宽度(以像素为单位)
- asp.net-core-mvc – 区域中的ViewComponents
- asp.net – Visual Studio的访问修饰符下拉列表选
- ASP.NET MVC身份验证Cookie未被检索
- asp.net – Request.ServerVariables [“REMOTE_
- asp.net – 是否有相当于mod_pagespeed Apache模
- asp.net 文件上传 实时进度
热点阅读