【发布时间】:2012-11-04 04:07:27
【问题描述】:
我创建了一个使用属性定义节点的项目,并将其设置在 web.config 中以扫描属性,它工作正常。
我根本不使用 XML 文件。
现在我想添加一个动态节点提供者,我该怎么做?
没有 XML (.sitemap) 文件有没有办法做到这一点?
我需要确保它位于根目录下,该根目录已使用MvcSiteMapNodeAttribute 属性在代码中设置。
我已经阅读了documentation,但我真的不知道该放在哪里:
<mvcSiteMapNode
title="Details" action="Details"
dynamicNodeProvider="Project.StoreDetailsDynamicNodeProvider, Prject" />
它应该指向什么动作?另外如上所述,根元素是使用属性定义的,所以我的问题是是否有办法避免使用 XML,或者声明 XML 的有效方法是什么(越少越好)以包含我的动态提供程序。
更新
我尝试了以下方法,但仍未到达节点提供程序(来自 HomeController.cs)。
[MvcSiteMapNode(Title = "Home", Key = HomeMenuKey,
DynamicNodeProvider = "Project.Namespace.NodeProvider, Assembly")]
public ActionResult Index()
{
return View();
}
【问题讨论】:
-
您是否按照here的详细说明进行操作?
-
@Mightymuke 我以前读过。问题已更新。
-
看看这个(半相关的)问题 - 它可能会给出一些指示:stackoverflow.com/questions/6169694/…
-
很抱歉,上面的 cmets 不是那么好(这里是凌晨 3 点)。我快速浏览了一下,如果没有 XML 文件中的站点地图节点,您似乎无法做到这一点,因为它提供了节点模板和对动态节点提供程序的引用。但是我以前从未使用过动态节点,所以很可能是错误的。
-
@Mightymuke,我说我不介意使用 XML。问题是根菜单(和其他菜单)都是在属性中定义的,所以我不知道在 XML 文件中写什么。
标签: asp.net-mvc mvcsitemapprovider asp.net-mvc-sitemap