问题标签 [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 投票
2 回答
463 浏览

asp.net - 如何确定 mvc 站点地图中的当前控制器操作?

我被一个问题困住了,我无法想象我是第一个必须处理它的人。然而,谷歌没有什么有用的东西,所以也没有,所以我在这里。

我正在使用带有站点地图的 ASP.NET MVC1。我使用 html 帮助器创建了一个导航菜单,该菜单突出显示 Site.Master 页面中当前选定的选项。常见场景,使用以下方法轻松完成:

这一切都很好,而且很花哨,但是,我的问题是我有 1 个具有多个操作的控制器。考虑以下场景:

账户 * 客户 * 供应商 * 维护

它们都将在我的 AccountController 中,进行相同但具有不同 AccountTypeId 值的搜索。

当我读取 SiteMap.CurrentNode 值时,它只提供了我正在使用 AccountController 的信息,而不是我调用了哪个操作。我已经尝试了很多东西,但我无法获得所要求的操作。

我希望我在那里提供了足够的信息,让您对场景有所了解。如果您还需要什么,请告诉我。

提前致谢 :)!

PS:自从在这里工作大约 2 个月以来就被扔进了 asp.net,所以请多多包涵。编程经验在这里,但 C# / .NET 知识大多等于 Google 或同事可以提供给我的知识。

编辑:-回应下面鲍勃的回答-

我遇到了 SiteMap Provider 项目,但是我没有给予太多关注,因为我使用的是 MVC1 并且它针对的是 MVC2。此外,我不太确定我们是否已经在使用它......毕竟,我一个站点地图......而且可以在办公室告诉我的人在接下来的 2 年的某个地方的海滩上放松周:(

0 投票
1 回答
116 浏览

asp.net-mvc - MVSiteMap 端口问题

我正在使用 MVCSiteMap - http://mvcsitemap.codeplex.com/ - 与 Azure,我试图弄清楚如何让它删除生成的站点地图末尾的端口号。

目前,我得到

对于此网址和所有其他网址。有没有人有这方面的经验或知道如何删除端口号?

0 投票
1 回答
820 浏览

asp.net-mvc - MVC SiteMap 2.0 是否支持自定义属性?

我正在使用MVC SiteMap项目的 v2.0。

使用 webforms 中的 System.Web.XmlSiteMapProvider,我经常将自定义属性存储在节点上,并通过 Attributes[] 集合访问它们。这对于构建所有共享属性的非标准节点集合非常有用。

MVC SiteMap 似乎不支持自定义属性。这是正确的吗?如果没有,任何人都可以提出一种识别我的站点地图中应该被视为“主要”导航的节点的好方法吗?


编辑:

我应该澄清属性如何看起来“不起作用”。当我向根节点添加自定义属性(例如 isPrimary="true" )时,我的 SiteMap.CurrentNode 属性始终为空。但是, SiteMap.RootNode 属性填充得很好。有任何想法吗?


进一步编辑:

鉴于我添加的任何其他属性都将添加到 RouteData,有没有办法将属性添加到与路由没有任何关系的节点?我正在考虑一个可以用来识别某些节点的任意参数。

0 投票
1 回答
2659 浏览

asp.net-mvc-2 - 在 ActionResult 中创建/删除站点地图节点 - ASP.NET MVC 站点地图提供程序

我正在使用ASP.NET MVC SiteMap 提供程序来创建动态站点地图节点。它在首次加载应用程序时工作,但我希望在执行 ActionResult 时添加/删除节点(从数据库中添加/删除记录)。我的web.sitemap如下(取出父节点和其他兄弟节点)

日期是动态生成的:

然后在这些生成的节点下添加节点:

但是,然后我开始在 ActionResult 中创建这些节点,但此时卡住了。我可以抓住节点:

但是然后我想检查节点是否为空,如果不创建一个新节点(如果不存在则创建父节点)。我尝试的第一件事不起作用,因为不确定是否可以将 DynamicNode 添加到站点地图(因为我无法将 DynamicNode 转换为 SiteMapNode)

当然,由于上述问题,这不起作用。

这仅适用于每条记录的编辑页面,我还想更改标题(如果标题已更改)或在必要时从站点地图中删除。

有任何想法吗?

0 投票
1 回答
3264 浏览

c# - MvcSiteMapProvider 和 dynamicNodeProvider 的问题

嗨,我在我的网络配置中添加了提供程序,如下所示:

这是我的 .sitemap 文件

我在一个单独的类文件中创建了两个动态提供者——我的基本相同。(如此处所示http://mvcsitemap.codeplex.com/wikipage?title=Dynamic%20sitemaps&version=1

我根本无法让站点地图工作,每当我用站点地图加载页面时,我都会得到一个值不能为空的错误。

请帮忙,我虽然 MvcSitemap 会调用我的 dynamicNodeprovider 但它不是因为在我所做的两个类中的任何一个中都没有尖点,

请帮忙。

0 投票
2 回答
5268 浏览

asp.net-mvc - 如何在 MVCSiteMap 中使用隐式本地化?

我正在尝试对 MVCSiteMap 使用隐式本地化,它不起作用。

这是我的样本Web.Sitemap

resourceKey="Products"在上面的站点地图中有一个对应Products.titleWeb.sitemap.resx文件,里面的App_GlobalResources文件夹。遵循这些说明: http: //msdn.microsoft.com/en-us/library/ms178427 (VS.80).aspx

我在这里缺少什么?

编辑

这已在变更集 52831中实现。

0 投票
1 回答
1092 浏览

asp.net - 如何使用 MvcSiteMap 为 ASP.Net MVC2 创建站点地图节点

我想使用 MvcSiteMap 来定义我的控制器和操作的站点地图,让我生成面包屑和菜单。

我尝试使用下面的装饰器以编程方式添加节点,但不幸的是它不会使我的树像我想要的那样。

我如何装饰我的行为以确保孩子/父母关系按照我的意愿进行?

0 投票
1 回答
10007 浏览

c# - 在 MvcSiteMapProvider 中为具有动态参数的 DynamicNode 创建子节点

我正在使用 MvcSiteMapProvider 2.2.1 (http://mvcsitemap.codeplex.com),并且当这些子节点具有动态参数 (id) 时,在动态节点下创建子节点时遇到问题(使用 dynamicNodeProvider)。

我正在丢失以下路线的面包屑:

商店/5/产品/编辑/23

url 模式是:

商店/{storeID}/{controller}/{action}/{id}

当 ID 被忽略(即“新建”操作)时,它可以正常工作。但是当指定 ID 时,它与路由不匹配,并且我的面包屑(使用 SiteMapPath 帮助器)是空白的。

我的站点地图:(略)

区域注册:

第一次尝试:

我尝试的第一件事是在站点地图 xml 中创建子节点作为动态节点的子节点。这根本不起作用,这些最终成为“家”的孩子。我会在其中放置一个 ParentKey 属性,除了每个商店会重复这些属性,因此会有多个父键

第二次尝试:

似乎下一个选项是直接在我的 DynamicNodeProvider 中添加子节点。除了具有动态参数的节点之外,这工作得更好

(以下为便于解释而修改...)

总之

是否有效:Stores/5/Products/New
无效:Stores/5/Products/Edit/23
对于 URL 模式:Stores/{storeID}/{controller}/{action}/{id}

我希望能够做什么:

如何在作为 dynamicNode 的子节点的节点上模仿旧的 MvcSiteMapProvider 的 dynamicParameters 属性?基本上我需要它在匹配路由时忽略“id”路由值。

希望我正确地解释了这一点,并且没有让您不知所措。谢谢!


更新:

这是根据 Jakub 的回答为我工作的解决方案。

在 MvcSiteMapProvider 2.x 中,您可以自己实现 ISiteMapNodeUrlResolver,而不必修改源。所以我基本上添加了具有 dynamicParameters 属性的能力

班级:

网络配置:

动态节点提供者:

0 投票
1 回答
2308 浏览

performance - 调试 ASP.NET MVC 站点性能问题

我有一个 ASP.NET MVC 应用程序,它似乎在我的机器上运行正常,但在服务器上运行时却不行。有没有人有任何关于找出性能瓶颈所在的提示或任何一般提示?路由错误配置会减慢应用程序的速度吗?

HttpContext.Current.Trace.Write在整个代码中添加了语句,但它们没有显示在应用程序跟踪日志 ( /trace.axd) 中?你怎么能写这个?我希望能够在使用应用程序时查看哪些部分可能会变慢,而不必启用页面跟踪。启用页面跟踪后,它会为每个可能使用的局部视图写出信息。

我正在使用的第三方库(MvcSiteMap)可能是问题所在,但不能确定,因为它在我的本地 PC 上的性能还不错,而且我无法直接在服务器上调试代码。应用程序不会挂起,页面加载只需几分钟。

0 投票
1 回答
3302 浏览

asp.net - ASP.NET MVC 站点地图和/或安全修剪

ASP.NET MVC 中是否有与 Web 窗体中的站点地图和安全修剪功能等效的功能?

我刚刚开始学习 MVC,并正在寻找解决方案,以防止在学习时走错路。