当我为动态节点设置CanonicalKey或CanonicalUrl时,我得到一个NullReferenceException

时间:2015-11-24 22:25:13

标签: asp.net-core-mvc mvcsitemapprovider

我正在使用MVCSiteMapProvider v4.6.22并为我的一个控制器提供动态节点提供程序。

类似的东西:

public class ProviderDetailsNodeProvider : DynamicNodeProviderBase
{
    public override IEnumerable<DynamicNode> GetDynamicNodeCollection(ISiteMapNode node)
    {
        foreach (var provider in providers)
        {
            var dn = new DynamicNode()
            {
                Title = provider.Name,
                ParentKey = "ParentKey",
                Key = $"provider_master_{provider.ID}",
                CanonicalUrl = "/url/something"
            };

            dn.RouteValues.Add("myRouteParamName", "myRouteParamValue");

            yield return dn;
        }
    }
}

如果不设置CanonicalKey的{​​{1}}或CanonicalUrl属性,我会得到正确的行为。但是我现在希望有多个URL指向相同的内容,因此我需要利用MVCSiteMapProvider的Canonical URL功能。

如果我尝试设置上面代码段中的DynamicNodeCanonicalUrl(我的首选),那么当我尝试使用辅助方法时,例如:

CanonicalKey

我得到@Html.MvcSiteMap().SiteMapPath() - 它是NullReferenceException,返回null。

我做错了什么,为什么我只是通过针对我的动态节点设置这些属性来获得此@Html.MvcSiteMap()

我在MVC6应用程序中使用NullReferenceException包。我在Nuget上看不到更新的版本。

1 个答案:

答案 0 :(得分:0)

根据issue on NuGet

,尚不支持MVC 6