我创建了一个项目,使用属性定义节点,我在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();
}
最佳答案 你能在控制器方法属性中定义它(而不是根本不使用XML)吗?
例如:
[MvcSiteMapNode(Title="Details",
DynamicNodeProvider = "Project.StoreDetailsDynamicNodeProvider, Project")]
public ActionResult Index()
{
return View();
}