首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVCSiteMapProvider不显示SiteMapPath

MVCSiteMapProvider不显示SiteMapPath
EN

Stack Overflow用户
提问于 2014-02-20 16:27:15
回答 1查看 2.8K关注 0票数 3

我有一个简单的站点地图:

代码语言:javascript
复制
<mvcSiteMapNode title="Projects" controller="Projects" action="Index"> <!--This wraps the entire site since Projects Index is the homepage-->
    <mvcSiteMapNode title="Projects" controller="Projects" action="Index">
      <mvcSiteMapNode title="Project" controller="Projects" action="Details">
        <mvcSiteMapNode title="Session" controller="Session" action="DetailsNew" />
        <mvcSiteMapNode title="Edit Session" controller="Session" action="Edit" />
      </mvcSiteMapNode>
    </mvcSiteMapNode>
    <mvcSiteMapNode title="My Account" controller="Account" action="ChangePassword" />
    <mvcSiteMapNode title="Admin" controller="Admin" action="Index" >
      <mvcSiteMapNode title="Create User" controller="Admin" action="AddUser" />
      <mvcSiteMapNode title="Manage Users" controller="Admin" action="Users" />
    </mvcSiteMapNode>
  </mvcSiteMapNode>

当我将@Html.MvcSiteMap().SiteMapPath()放在我的项目详细信息页面上时,什么都不会显示。想法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-21 10:34:07

当添加自定义路由值( "area“、”控制器“或”action“除外)时,需要显式指定如何匹配它。

默认情况下,您需要为每个潜在的路由键值创建一个节点。例如,如果您有一个名为" id“的路由密钥,并且有id为"1”、"2“和"3”的记录,则需要为每个id创建一个节点。

代码语言:javascript
复制
<mvcSiteMapNode title="Project 1" controller="Project" action="Details" id="1">
<mvcSiteMapNode title="Project 2" controller="Project" action="Details" id="2">
<mvcSiteMapNode title="Project 3" controller="Project" action="Details" id="3">

您已经发现了另一种选择,即使用preservedRouteParameters。这将使节点始终匹配路由密钥,而不管其值如何,对于执行CRUD操作的管理页来说,这通常是理想的解决方案。

代码语言:javascript
复制
<mvcSiteMapNode title="Edit Project" controller="Project" action="Edit" preservedRouteParameters="id">

通常,当您这样做时,您必须稍微修正一下显示,因为在菜单上有一个编辑节点没有多大意义(通常从记录列表中选择编辑),当您选择它时,通常希望节点显示您选择的记录。您可以使用FilteredSiteMapNodeVisibilityProviderSiteMapTitleAttribute来完成这个任务。

有关您通常如何设置一组CRUD操作的完整可下载演示,请参阅题为如何使MvcSiteMapProvider记住用户的位置的博客文章。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21913779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档