问题标签 [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 回答
670 浏览

asp.net-mvc-3 - MvcSiteMap Provider 性能问题

我正在使用一个动态节点提供程序,它总共包含 6000 个节点。第一次请求包含 @Html.MvcSiteMap().SiteMapPath() 的 razor 视图时,页面最多可能需要 7500 毫秒才能加载。

时间都在此调用中占用,因为在动态节点提供程序中分析我的代码需要 28 毫秒。

如果我取出 mvc.sitemap 中的所有动态节点,代码会很快返回 280 毫秒。

有什么方法可以预加载这个 - 我正在使用 IIS 7,因此如果 IIS 7.5,则无法使用应用程序预热模块或新的应用程序启动预热部分。

我正在使用最新的 NuGet 版本 3.2.1

0 投票
1 回答
935 浏览

asp.net-mvc-4 - 使用 SiteMapPath 的问题

在我的网站上,我有以下结构:

  • 产品类别
    • 产品分类
      • 产品

假设我有一个具有以下特征的产品:

产品 XYZ - TypeLink: “type-xyz” - CategoryLink: “category-xyz” - 链接: “product-xyz” ...

该网址将用于产品/produto/type-xyz/product-xyz#category-xyz

请注意,类别只不过是 Url 中的哈希

路线

遵循路由的定义

http://mysticpaste.com/private/kXhF9FFLbw/

注意:路线运行良好!我列出只是为了更好地理解

网站地图

使用以下命令显示站点地图:

razor @Html.MvcSiteMap().SiteMapPath()

动态的

产品类型: http: //mysticpaste.com/private/yzOR1d0kr9/

产品类别: http: //mysticpaste.com/private/YzWvrYOt6J/

产品: http: //mysticpaste.com/private/eDbfxmWAXU/

mvc.sitemap

http://mysticpaste.com/private/2PztbFuDIs/

如果您需要站点地图的完整代码:http: //mysticpaste.com/private/JPKOg1a6g9/

网页配置

http://mysticpaste.com/private/8WpRGvc7Cq/

问题

我的问题是站点地图没有正确显示标题和链接!本网站在此链接中发布。 http://datafilme.bindsolution.com/ 例如,您可以打开产品页面“Website da Datafilme”

http://datafilme.bindsolution.com/Produto/software/website-da-datafilme

如您所见,链接是正确的! 但是站点地图显示来自另一个产品的数据!

0 投票
1 回答
705 浏览

asp.net-mvc-3 - 使用 MVCSiteMapProvider 的 DropDownMenu

我正在使用 asp.net mvc3 razor 引擎并尝试使用 MVCSiteMap 提供程序来呈现菜单,但是当我使用多级站点地图时,菜单控件会在没有和悬停功能的情况下呈现页面上的所有节点。

请告诉,有什么办法。

0 投票
1 回答
376 浏览

asp.net-mvc - 如何将节点添加到动态节点提供程序?

我已经通过在 SiteMap 文件的 mvcSiteMapNode 中指定节点提供程序名称来实现动态节点提供程序,并且它工作正常。但是,我只想在用户通过身份验证后添加动态节点。原因是我想访问 HttpContext.User.Identity,以便我可以按 user.Identity 过滤节点。

因此,我已经删除了 SiteMap 文件中的 mvcSiteMapNode,而是在 Action 方法中调用 GetDynamicNodeCollection 方法(一旦用户经过身份验证),并且节点正在被用户过滤。这也按预期工作。

我的问题:获得节点后,如何将它们添加到 SiteMapNodeCollection 以便它们显示在从 ActionResult 返回的视图中?

0 投票
1 回答
1834 浏览

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

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

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

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

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

目前它只显示:

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

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

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

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

0 投票
1 回答
3026 浏览

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

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

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

这是节点提供程序的代码

和 MVC 站点地图代码:

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

我对此感到困惑。

0 投票
1 回答
692 浏览

asp.net-mvc-3 - 使用 MvcSite 映射 Mvc3 动态创建子菜单

我创建了一个包含菜单项的 MvcSite 地图,此站点地图使用 @Html.MvcSiteMap.Menu(false,true,true) 显示在共享布局页面上

我在 MenuHelpModel.cshtml 文件中有一个自定义代码现在我想在用户登录时创建一些菜单项我正在获取用户所属的组织数量,这是动态的“用户可以是 n 个组织的成员”

有什么方法可以在 MenuHelpModel 中编写动态菜单,还是需要在布局中编写代码并使用 Jquery 来填充菜单?

有什么方法可以在 jQuery 中使用 ViewBag 吗?

0 投票
1 回答
492 浏览

asp.net-mvc - Orchard CMS:没有 web.sitemap 来构建我的自定义菜单

我从 OrchardCMS 开始,遇到了障碍(至少对我来说)。

我有代码可以生成我需要的菜单(增量、下拉或其他,代码可以做到),但它使用 web.sitemap 或 mvc.sitemap,这在 Orchard 中不可用。

有什么方法/模块可以用来获取我的代码可以使用的站点地图吗?

高级菜单或其他导航模块是否提供类似于我需要的东西?

或者,果园是否为这种事情公开了任何 api?

我的问题是我正在将果园集成到现有站点中,因此需要提供相同的菜单。我的菜单生成器突出显示“当前分支”上的任何项目,以便用户对它们在导航层次结构中的位置有强烈的视觉提示。面包屑不是一种选择,因为我使用的网站之一涉及有精神障碍的人。

编辑:

编写一个模块从高级菜单中即时构建站点地图并通过站点地图提供程序获取它是否可行?应该没那么难...

那是正确的方法吗?

我真的需要我的菜单来显示当前分支和当前节点的视觉提示。

笔记:

在我的菜单中,当前分支和节点是从当前页面的 url 动态构建的(当前分支由从当前页面到根的层次结构中的所有页面组成)。

0 投票
0 回答
205 浏览

asp.net-mvc - 分析、站点地图、路由多合一的 Asp.Net Mvc 解决方案

我正在计划用于分析、站点地图和路由的一站式解决方案。

我必须使用 Asp.Net mvc 中的哪个扩展机制?一些站点地图和分析问题可以在路由级别解决。我认为使用 3rd 方站点地图解决方案存在开销。(https://github.com/maartenba/MvcSiteMapProvider)。更集成的解决方案会更好。

(例如,我会将所有 Url、Controller、Action 信息存储在 Pagedb 上,可能会有正则表达式,但我也会将它们存储在 db 和缓存中)

Ps:我会用ServiceStack Mvc框架:)和asp.net mvc 4

设想:

  • App_Start

    通过 PageProvider 准备所有 url(类似于 MvcSitemapProvider 中的 DynamicSiteMap 功能)

    所有 URL 都使用 Controller、Action、Parameters 作为对象存储和缓存(Sitemap 也已准备好)

  • App_BeginRequest

    检查 URL 是 PageCache

    • 如果存在更新分析并通过强类型参数运行

    • 如果不存在,则检查有效并添加到 PageCache 转到前一个选项

0 投票
1 回答
459 浏览

asp.net-mvc-3 - MvcSiteMap 只有根节点

我正在尝试使用 MvcSiteMapProvider,但要创建自己的自定义布局。我使用 nuget 将 MvcSiteMapProvider 版本 3.2.3.0 安装到我的项目中,并创建了这个文件用于开发。但是,当我尝试遍历根节点的子节点时,没有任何子节点。

然而,根节点似乎没有任何子节点:

在此处输入图像描述

我不知道出了什么问题。我已经用正在执行的动作替换了根,并给了它一个类似的孩子,但这没有用: