问题标签 [asp.net-mvc-sitemap]

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 回答
1275 浏览

asp.net-mvc - MVC Sitemap - 有条件地显示描述

我正在为我的网站使用 MVC 站点地图提供程序,并且一次在我的页面上最多显示三个版本的导航。

一、顶层:

@Html.MvcSiteMap("MvcSiteMapProvider").Menu(0, true, false, 1)

子部分,在查看顶级页面时重复使用:

@Html.MvcSiteMap("MvcSiteMapProvider").Menu(2, 1, true)

这是我的站点地图中的 2 级部分:

...这是显示模板

@using System.Web.Mvc.Html @using MvcSiteMapProvider.Web.Html.Models

@{ // 默认字符串 itemIcon = "1"; 字符串 listClass = "菜单项";

}

我拥有它,以便子级别导航的每个实例的显示模板都是相同的,所有外观差异都通过 CSS。我想要做的是有条件地包含描述属性,例如只呈现描述。

目前,描述为所有菜单呈现,然后用 CSS 隐藏那些我不想要的,这显然是一个肮脏的修复。

这很可能是一个更广泛的 MVC 问题,例如在调用站点地图之前设置一个变量,然后在显示模板中使用该变量。

任何建议,将不胜感激。

谢谢!

0 投票
1 回答
525 浏览

asp.net-mvc - 无法将 mvc.SiteMap 中的 XML 节点绑定到 global.asa 中的路由?

我正在使用 MVC3、C#4、Razor、MvcSiteMapProvider V4。

我正在尝试将我的 mvc.sitemap 文件中的 MvcSiteMapNodes 显式绑定到我的 global.asa 中的路由。但这似乎不起作用。毫无疑问,我遗漏了一些东西。

我在 global.asa 中的路线:

我的 mvc.sitemap 的一部分:

所以我的 2 个网址是:

举报途径:

Reports_Sections 路线:

我在第二条路线上没有得到认可,因此相关页面上没有出现面包屑路径。我曾希望仅通过在 mvc.sitemap 中指定“路由”属性,mvcSiteMapProvider 就可以绑定两者。

想法。我哪里出错了?

非常感谢

编辑:

看来我需要在“mvc.sitemap”中指定“控制器”和“动作”,而“路由”本身是行不通的。

0 投票
1 回答
230 浏览

asp.net-mvc-3 - 我似乎在 MvcSiteMapProvider 面包屑路径中获得了 GUID,不知道为什么?

我正在使用 MVC3、C#、Razor、mvcSiteMapProvider V4。

我正在使用“Mvc.sitemap”

“Global.asax”自定义路由如下所示:

“Report”和“Report_Section”路由工作正常。但是,当我进入“后台”路由时,我会丢失 mvcSiteMap BreadCrumb URL 中的“Report_Section”和“Report”路由的所有路由结构。相反,我得到一个 GUID,即:

我相信这可能是自动生成的 XML 节点密钥。但是,它在单击时会产生 404。

我应该得到类似的东西:

报告

部分

有什么想法可能导致这种情况吗?

谢谢。

0 投票
1 回答
342 浏览

asp.net-mvc-3 - 是否可以使用具有相同控制器和操作但标题不同的多个 SiteMapNode?

我正在构建一个向导,并使用相同的“主”控制器和动作来协调调用哪个子控制器和动作来实现该步骤。

我正在尝试拼凑一个面包屑路径来代表向导流程,但有些困难。在 mvc.SiteMap 中不能有多个具有相同控制器和操作的“mvcSiteMapNode”这一事实无济于事。它似乎需要主控制器名称,即“Wizard”和“Index”,而不是子控制器名称,即“Step1”和“Index”。

因此,就其本身而言,这将起作用:

但是,对于多个向导步骤,我想做:

但是上面的方法是行不通的,除非有另一种方法来区分这些节点。

任何智慧表示赞赏!

谢谢。

0 投票
1 回答
436 浏览

asp.net-mvc-4 - MVCSiteMap:节点是否应该获取当前请求参数值?

设置:

我在 ASP.NET MVC 4 应用程序中使用 MvcSiteMap 版本 3。

问题:

我有一个这样的节点:

控制器上的Planets动作SolarSystems有两个参数,int order, int size其中 order 表示行星从恒星开始的顺序。例如,Mercury将是1,并且大小是按大小排列的行星的顺序,其中最小的是1

对于这两个参数,-1意味着我不知道。

在我的路线注册中,我有类似的东西:

一切正常,即使用默认值...

...除非当前页面是具有相同名称的两个参数的操作。

在这种情况下,节点将使用这两个参数而不是默认值 -1。

例如,如果我有一个GalaxyClusters控制器,其Index动作有两个参数int order and int size,并且在当前请求中,order == 10009985639 和 size = 9098,那么我的行星动作试图在我们的太阳系中找到具有这些值的行星。

显然,它会失败,我们从伽利略时代就知道这一点。

似乎发生了什么:

换句话说,似乎 MvcSitemap 注入了任何参数的当前值,如果找到匹配项,那么 BOOM!这对我来说似乎是错误的,所以这是默认值吗?

通过在节点中放入以下内容可以轻松解决该问题:

这个靠谱吗?!

注意(和重申的问题):

我知道我已经回答了似乎是我的问题,但如果您认为,在投票结束问题之前,请仔细阅读:

我要问的问题是这是否是默认行为?如果是,为什么?并且:我的解决方案可靠吗?

最后,我真的没有一个应用程序可以对宇宙中的所有星系进行分类(sql server 可能不喜欢那么多记录,我会获得诺贝尔奖)。我只是调整了这个问题,这样我就不用我客户的域名了。

0 投票
1 回答
2009 浏览

asp.net-mvc - 如果相同的 mvcSiteMapNode 出现在 mvc.SiteMap 的不同位置,我如何维护正确的面包屑路径?

我有一个 SiteMapNode 挂在主仪表板 SiteMapNode 上:

以上产生的面包屑为:“Dashboard > Company Users”

我也想参考这个,并得到“仪表板>你的子>公司用户”

但是我仍然得到:“仪表板>公司用户”

我怀疑它仍然是针对第一个 SiteMapNode 的模式匹配。

如何确保使用正确的 SiteMapNode,从而生成正确的 BreadCrumb Trail。顺便说一句,Controller 和 Action 是一样的,所以我不确定 Action Attributes 会有多大用处?

非常感谢。

0 投票
4 回答
8978 浏览

asp.net-mvc - 如何使用 mvcSiteMapProvider 实现安全性?

我需要使用我的 mvcSiteMapProvider V4 软件来实现角色安全性。我将它与 MVC3 一起使用。

示例 mvcSiteMap 代码:

此角色属性值无效:

这是一样的。如果管理员已登录,我希望上述操作不起作用?如果只有用户登录,我希望第一个示例能够工作。

...但是没有效果。

非常感谢

0 投票
1 回答
480 浏览

c# - Lazy loading on DynamicSitemapNodeProvider

I have set up a breadcrumb using the MvcSiteMapProvider. I have a structure that has some static nodes and then on some leaves there are dynamic nodes added using the asp.net-attribute.

That 'works' fine, but when you look under the hood, the performance is really really bad, because on startup all users are loaded into the memory and for every user there is a node created. This is the approach that is suggested in the official docu. Is there a way to use lazy loading here? (load the properties of the user-object when its really called and not creating a node for every user ... i have like 20k users in there....)

0 投票
3 回答
3412 浏览

c# - MVSitemapProvider 指示当前节点和父节点

我想用 css 类标记当前节点和它的父节点。我四处寻找,发现了这些链接:

http://mvcsitemap.codeplex.com/discussions/257786 http://mvcsitemap.codeplex.com/discussions/245000

所以我修改了 SiteMapNodeModelList.cshtml,现在突出显示了当前节点。但不确定我应该如何突出显示父节点。

为了标记父节点,我构建了一个扩展方法来检查所有直接子元素(我只有 2 个级别):

并像这样更改了 MenuHelperModel.cshtml:

这现在完美无缺。但是真的没有更简单的方法吗?不能成为地球上第一个需要这个的人吗?

0 投票
1 回答
156 浏览

mvcsitemapprovider - 如何创建新模型?

我希望我能做到以下几点:@Html.MvcSiteMap().PageMenu()而不是@Html.MvcSiteMap().Menu("MenuBtnGroup").

主要是因为过滤器。

我希望某个链接只出现在页面或站点地图上,而不是出现在主应用程序菜单中