问题标签 [mvcsitemapprovider]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
928 浏览

asp.net-mvc-3 - 使用preservedRouteParameters 停止Mvc Sitemap 提供程序缓存节点

在站点地图中,我有几个节点,其中在生成 URL 时包含路由参数(meetingId),例如

当我浏览一个会议(meetingId = 1)并切换到另一个会议(meetingId = 2)时,mvcsitemapprovider 生成的菜单没有改变。

上面的节点会生成 URL:

但实际上应该是:

在我的顶级节点中,我有 changeFrequency="Always":

在 web.config 我有:

节点是如何被缓存的?以及如何解决这个问题?

0 投票
3 回答
4026 浏览

asp.net-mvc - MvcSiteMapProvider - 多个页面需要链接到一个菜单节点

在我的MVC3项目中,我安装了 Maartenba 的MvcSiteMapProvider v.3.2.1,并且我创建了一个非常简单的静态两级菜单。下面是概念图结构。

现在,成员列表下有许多子页面(例如,详细信息、编辑等),但我希望这些显示为 3 级菜单项(主要是因为它们与特定的成员 ID 相关联)。但是,我确实希望所有这些第三级页面都“绑定”到成员列表菜单节点,以便在这些页面上显示为选中状态。

我的 Mvc.SiteMap 文件中有以下代码:

为了呈现菜单,我在 _Layout.cshtml 文件中使用了以下代码:

最后,我修改了 SiteMapNodeModel.cshtml 文件,以便将“selectedMenuItem”类添加到与用户正在查看的页面相关的节点。这是呈现菜单节点的代码片段。

地图的显示和导航工作得很好,直到我进一步导航到成员区域。例如,如果我经过Members/Member/List(正确显示菜单)并进入类似的页面Members/Member/Detail/1,则会员中心下的子节点(“会员列表”、“活动日历”等)消失。因此,这是我在当前代码中遇到的两个问题:

  1. 我想指定任何给定页面是“会员中心”父菜单节点的一部分,这样“会员中心”的子菜单节点都会显示出来,而不管给定页面是否定义为菜单中的特定节点结构体。

  2. 我想指定(可能在视图或控制器操作中)特定页面应绑定到特定菜单节点。例如,当用户位于 时Members/Member/Detail/1,我只想指定“成员列表”子节点,IsCurrentNode以便 SiteMapNodeModel.cshtml 文件使用“selectedMenuItem”类正确装饰它。

有什么建议么?

0 投票
1 回答
766 浏览

asp.net-mvc - MVCSiteMapProvider - 最近添加的关键字,现在它们填充在 MenuHelper 的链接中

我在我的 MVC3 站点中使用 MVCSiteMapProvider,并且我最近在 mvc.sitemap 中的节点中添加了元关键字和描述

< mvcSiteMapNode controller="Home" action="Index" title="Home" description=""keywords="home, home page, 欢迎" >

... 例如。

然后我的视图像这样填充它:

@{ 字符串标题 = ""; 字符串关键字 = ""; 字符串描述 = "";

}

<标题>>@标题</标题>>

<meta name="keywords" content="@keywords" />

<meta name="description" content="@description" />

在我使用的所有页面上:

@Html.MvcSiteMap().Menu(0, true, true, 1)

自从我开始将内容放入关键字部分以来,菜单中的链接填充如下:

<a href="/?keywords=home%20%2C%20Home%20Page%2C%20welcome" >首页</a>

我不确定为什么会出现这种情况,我希望它不存在。有人有想法么?

0 投票
1 回答
1085 浏览

asp.net-mvc-3 - 使用 MvcSiteMapProvider 创建动态多级站点地图

我有一个 mvc.SiteMap 定义如下:

在每个级别,节点都是从数据库中的值动态生成的。我的问题是,对于子节点,在构建站点地图时会多次调用节点提供程序。我不确定是否是:

  1. 为创建的每个父类型调用一次。所以如果有 5 个计划,那么关键功能的提供者会被调用 5 次,因此节点会生成 5 次。如果是这样,是否有某种方法可以传递提供者信息,以便我只能生成与当前父节点关联的节点,而不是所有具有该类型的节点?或者有没有办法访问当前的父节点?
  2. 由于另一个原因被多次调用,尽管最高级别的动态节点提供程序只被调用一次。

该代码现在可以工作,但是效率非常低。

这是一个示例提供程序:

任何帮助是极大的赞赏。

0 投票
1 回答
1834 浏览

asp.net-mvc - 如果 MvcSiteMapProvider 的操作标记为 [Authorize(Roles = "Administrator")],则在 MvcSiteMapProvider 中显示节点

目前,我有一个需要授权ControllerIndex()操作方法:

有了这个,相应的节点Mvc.sitemap将不会显示在面包屑中:

我想要的是无论如何都显示这个节点......

假设用户未通过身份验证。所以我希望面包屑显示这一点:

目前它只显示:

如果用户单击“客户”节点,他将被重定向到登录视图……好的,没关系!

SiteMapVisibilityProvider我尝试按照以下步骤实现自己的:

在调试时,我只能看到 Index 节点下方的节点,也就是说,在我目前的情况下,只有 Add 节点出现。表示 Index 操作方法的节点未显示在调试会话中。

有什么方法可以实现我想要的吗?

0 投票
1 回答
2161 浏览

asp.net-mvc - ASP.NET MVC SiteMap 提供程序不会从属性生成站点地图节点

更新: 尽管有以下所有文本,但问题相当小 - 站点地图配置中 includeAssembliesForScan 参数中的错误程序集名称。它不应包含“.dll”部分。

我有 v. 3.2.2.0 的 MvcSiteMapProvider。

如此处所述,我使用属性在代码中定义站点地图节点。但是属性动作不会生成为节点。只有在站点地图中明确定义的节点才会生成。

那是我的代码:

网站地图:

家庭控制器:

账户控制人:

因此,这两个动作不会成为站点地图中的节点。换句话说,MvcSiteMapNodeAttribute 属性不起作用。为什么?

我的 web.config 的站点地图部分:

0 投票
1 回答
686 浏览

asp.net-mvc-3 - 使用 MVSiteMapProvider 的 FluentSecurity

我希望将它与 MvcSiteMapProvider 一起使用来隐藏/显示菜单项,而不是在我的 mvc.sitemap 文件中加倍和定义角色。

我已经浏览了 2.0alpha1 的源代码,但似乎无法弄清楚如何执行以下操作:

谁能指出我正确的方向?

谢谢

0 投票
1 回答
3026 浏览

asp.net-mvc - MVCSiteMapProvider 动态节点始终返回面包屑中所有页面的第一个节点

我正在为我的 ASP.NET MVC 3 项目使用 MVCSitemapProvider,我有一个用于新闻稿部分的动态节点。我面临的问题是一个部分有多个节点,当我查看站点地图时,它可以正常工作:

但是在面包屑中,如果我导航到新闻稿 #2 页面。面包屑将显示第一个节点。

这是节点提供程序的代码

和 MVC 站点地图代码:

当我重写这个问题时,我一直在玩代码,没有进行任何重大更改,现在......新闻稿#1显示新闻稿#1,新闻稿#2显示新闻稿#3和新闻发布 #3 显示新闻稿 #1。

我对此感到困惑。

0 投票
1 回答
902 浏览

asp.net-mvc-3 - 找不到类型“System.Web.Mvc.WebFormView”的构造函数

我刚刚从 TFS 中检查了一个 asp net mvc 项目。安装所有必需的 NuGet 包后,我尝试运行该项目。

尝试使用 MvcSiteMapProvider 的以下方法之一时,我不断收到此错误消息:

  • 站点地图标题()
  • 站点地图()
  • 站点地图路径()

我正在使用 .NET Framework 4.0、MVC3 和 MvcSiteMapProvider 版本 3.2.2.0。

我通过 NuGet(包管理器控制台)安装了 MvcSiteMapProvider。

我的项目使用运行时版本 v2.0.50727 引用 ...\packages\MvcSiteMapProvider.3.2.2.0\lib\net40\MvcSiteMapProvider.dll 中的 DLL

任何帮助,将不胜感激。

0 投票
1 回答
266 浏览

c# - MvcSiteMapProvider 和带有连字符的 url

我有一个 MVC 站点,它使用带连字符的 URL(用于 SEO 优化),例如:

现在我已经实现了MvcSiteMapProvider生成动态面包屑,但是对于带有连字符的 URL,它不起作用(在站点地图上找不到)。

我该如何解决这个问题?