MvcSiteMapProvider 是针对 ASP.NET MVC 中,提供菜单、 网站地图、 站点地图路径功能,以及更多的工具。它提供配置使用一个可插入的体系结构,可以是 XML、 数据库或动态生成导航结构的能力。

如图:

在MvcSiteMapProvider 中有三种方式来实现站点地图:XML,.NET Attributes,IDynamicNodeProvider。

下面,我们先通过XML方式来实现站点地图。

1.新建Mvc4项目,选择Internet应用程序。然后通过Nuget来安装MvcSiteMapProvider,本例中使用的是Mvc4,所以需要下载MvcSiteMapProvider Mvc4。安装成功后,会出现Mvc.sitemap文件。

2.使用XML的方式需要在Mvc.sitemap文件中配置。默认配置如下:

 1 <?xml version="1.0" encoding="utf-8" ?>2 <mvcSiteMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"3             xmlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0"4             xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-4.0 MvcSiteMapSchema.xsd">5 6   <mvcSiteMapNode title="Home" controller="Home" action="Index">7     <mvcSiteMapNode title="About" controller="Home" action="About"/>8   </mvcSiteMapNode>9
10 </mvcSiteMap>

3.在Views文件夹下的Shared文件夹的_Layout.cshtml中,我们将Header下的<nav>下的ul 注释,然后使用@Html.MvcSiteMap().Menu() 来生成菜单。

然后在@RenderBody()上面加上 @Html.MvcSiteMap().SiteMapPath() 用来生成所谓的面包屑。

修改后的_Layout.cshtml内容如下图所示:

4.到目前为止,我们已经完成了最基础的配置,下面我们来看看效果。打开网站,可以看到生成的菜单。点击About,可以看到生成的面包屑。

本章我们简单的讲解了使用MvcSiteMapProvider的XML方式来生成站点地图,下一篇我们将深入研究以XML的方式来生成站点地图。

新手勿喷~

来源: <http://i.cnblogs.com/EditArticles.aspx?postid=3819196&update=1>

转载于:https://www.cnblogs.com/oyc1992/p/MvcSiteMapProvider.html

Mvc中使用MvcSiteMapProvider实现站点地图之基础篇相关推荐

  1. 谷歌地图应用——基础篇之入门

    示范代码 <!DOCTYPE html> <html lang="en"> <head>     <meta charset=" ...

  2. 在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)

    对于游戏公司而言,采用游戏脚本lua.python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则向大家简单介绍脚本的用途以及在Cocos2dx基础用法: Lua和python这些详细 ...

  3. Python Qt GUI设计:多线程中信号与槽的使用(基础篇—9)

    有时候在项目开发时,经常会遇到一些耗时操作导致界面迟缓卡顿,为了解决这个问题,可以创建多线程,使用主线程更新界面使用子线程实时处理数据,最后将结果显示到界面上. PyQt多线程将使用QThread函数 ...

  4. idea中java文件怎么运行_Java入门基础篇-如何在Java中创建只读文件

    本文选自千锋教育<Java语言程序设计>,如需转载请注明出处,谢谢! 1.如何创建只读文件 要使文件只读,我们只要将文件属性更改为只读就行:可以使用File类的setReadOnly()方 ...

  5. java中file类乱,【JAVA SE基础篇】47.file类的方法

    1.file类的方法 1.getName():获取文件名 2.getPath():获取文件路径,设定是相对路径得到的就是相对路径,绝对路径同里 3.getAbsolutePath():获取文件绝对路径 ...

  6. python集合类型中的元素是有序的_python基础篇:很有意思的数据类型,集合(set) 常用去去重...

    Python集合(set),是一个很有意思的数据结构.从形式上看,它像字典有key但没有value,它的写法是这样的s = {'a', 'b', 'c'},是不是像一个没有value的字典?另一方面, ...

  7. java中practice_【Java语言程序设计(基础篇)第10版 练习题答案】Practice_9_5

    (使用公历类 GregorianCalendar)Java API 有一个在包 java.util 中的类 GregorianCalendar ,可以使用它获得某个日期的年.月.日.它的无参构造方法构 ...

  8. python中查看关键字需要在python解释器中执行_python从零开始--(02)--基础篇

    继续我们的学习 今天我们需要学的内容是: 1.input,print  (输入,输出). 2.变量. 3.python中的数学运算符. (另外,我们需要在这个过程中学会python解释器使用) 打开解 ...

  9. 关于ASP.NET 中站点地图sitemap 的使用

    在ASP.NET  MVC 如此火热的时期,我竟然不适时宜的谈起ASP.NET ,恐怕会引来一阵嘲笑.最为无趣的是,讲解的竟然还是其中的一个控件.oh~~  my god!my out! ^_^ Si ...

最新文章

  1. OpenCV+python:像素运算
  2. 第八节 字符串的插入
  3. ejs模板引擎的使用
  4. 这道题你怎么看?长春理工大学2021电子竞赛
  5. java数组转换成字符串,附小技巧
  6. python cursor游标_第二十三天 python中游标的使用
  7. 设计模式-结构型模式-装饰模式
  8. JAVA编程规范总结
  9. oracle vm传输,XML 传输 - Oracle VM Server for SPARC 2.0 管理指南
  10. 代码下移快捷键_收藏细看!最全面的通达信快捷键一览
  11. inmotion服务器账号密码,InMotionHosting如何通过SSH连接服务器
  12. [转]Vue Cli3 + VS Code 愉快调试
  13. Redis五种数据结构及常用操作指令、Redis在JAVA中如何封装使用
  14. 攻略:简易VBS病毒制作
  15. matlab基因频率是看最大值吗,基于ICA的语音信号盲分离
  16. 如何选购计算机的硬盘,教你如何选配电脑—硬盘篇
  17. 如何实现360度的手游安全防护?网易云易盾专家分享最新实践
  18. eclipse远程调试Java程序
  19. [linux] 命令输出不打印
  20. k8s 中部署kafka集群

热门文章

  1. 得到一个汉字的拼音第一个字母
  2. MySQL(9)主从复制与读写分离
  3. tortoise清理本地分支_TortoiseGit操作本地仓库的详细使用方法
  4. 一份不大的救命文档,一场时间与生死的接力
  5. 1 分钟 Serverless 部署掌上游戏机,“一行命令”找回小时候的乐趣!
  6. 解读云原生下的可观察性发展方向
  7. 拆!对比详解 Flutter Widget 和 CSS,你关心的布局原理都在这儿了
  8. 深度解析 | 基于DAG的分布式任务调度平台:Maat
  9. 三招做出页面中的节奏与韵律
  10. Tuomas Pirinen:创造游戏人物的8个方法