如何在MVC站点地图中创建一个不可亮的动态节点



我正在使用MvcSiteMapProvider在我的ASP.NET MVC应用程序中创建面包屑。我有一些动态资源,我想为这些孩子创建一些子节点。其中一些节点,我想出现在面包屑中,但不能单击。

对于静态资源,您可以在XML SiteMap文档中指定clickable="false",并且这些节点将出现,但不会是超链接。我找不到在我的动态节点提供商类返回的DynamicNode上设置的等效属性。

是否可以添加动态性" untlackable"节点?

DynamicNode没有n Clickable属性,因为它不从MvcSiteMapNode类继承。

反思MvcSiteMapNode表明Clickable的实现由Attributes属性支持:

public bool Clickable
{
    get
    {
        return ((this["clickable"] == null) || bool.Parse(this["clickable"]));
    }
    set
    {
        this["clickable"] = value.ToString();
    }
}

DynamicNode类公开其自己的Attributes属性,当解析动态节点时,该属性将复制到MvcSiteMapNode实例。因此,可以使用此代码设置该属性:

var node = new DynamicNode();
node.Attributes["clickable"] = "false";

在v4中现在有一个动态节点上的单击属性,并且将属性设置为单击现在将导致错误,因为属性不再由属性字典来支持。

var node = new DynamicNode();
node.Clickable = false;

相关内容

  • 没有找到相关文章

最新更新