2016-11-02 11 views
0

web.configsiteMap要素が無視されています。どうしてこれなの? 私の目的は、siteMapNodeUrlResolverを有効にすることです。web.config siteMap要素が無視されました

web.configファイル

<system.web> 
    <siteMap defaultProvider="MvcSiteMapProvider" enabled="true"> 
     <providers> 
     <clear /> 
     <add name="MvcSiteMapProvider" 
      type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider" 
      siteMapFile="" 
      securityTrimmingEnabled="true" 
      cacheDuration="5" 
      enableLocalization="false" 
      scanAssembliesForSiteMapNodes="true" 
      excludeAssembliesForScan="" 
      includeAssembliesForScan="AACOMvc" 
      attributesToIgnore="" 
      nodeKeyGenerator="MvcSiteMapProvider.DefaultNodeKeyGenerator, MvcSiteMapProvider" 
      controllerTypeResolver="MvcSiteMapProvider.DefaultControllerTypeResolver, MvcSiteMapProvider" 
      actionMethodParameterResolver="MvcSiteMapProvider.DefaultActionMethodParameterResolver, MvcSiteMapProvider" 
      aclModule="MvcSiteMapProvider.DefaultAclModule, MvcSiteMapProvider" 
      siteMapNodeUrlResolver="AACOMvc.SiteMapNodeUrlResolver, AACOMvc" 
      siteMapNodeVisibilityProvider="MvcSiteMapProvider.DefaultSiteMapNodeVisibilityProvider, MvcSiteMapProvider" 
      siteMapProviderEventHandler="MvcSiteMapProvider.DefaultSiteMapProviderEventHandler, MvcSiteMapProvider" 
     /> 
     </providers> 
    </siteMap> 
    <pages> 
     <namespaces> 
     <add namespace="MvcSiteMapProvider.Web.Html" /> 
     <add namespace="MvcSiteMapProvider.Web.Html.Models" /> 
     </namespaces> 
    </pages> 
    </system.web> 

SiteMapNodeUrlResolver.cs

using MvcSiteMapProvider; 
using MvcSiteMapProvider.Web.UrlResolver; 
using System; 
using System.Collections.Generic; 

namespace AACOMvc 
{ 
    public class SiteMapNodeUrlResolver : ISiteMapNodeUrlResolver 
    { 
    public SiteMapNodeUrlResolver() : base() { } 

    public bool AppliesTo(string providerName) 
    { 
     throw new NotImplementedException(); // line never executes 
    } 

    public string ResolveUrl(ISiteMapNode node, string area, string controller, string action, IDictionary<string, object> routeValues) 
    { 
     throw new NotImplementedException(); // line never executes 
    } 
    } 
} 

私はプロバイダがノード上urlResolver属性を設定することで、私のリゾルバを見つけるのに役立つ、それを見つけました。しかし、その後、私は得る:

例外の詳細を:System.MissingMethodException:タイプ のコンストラクタが 'AACOMvc.SiteMapNodeUrlResolver' が見つかりません。

  1. 私はむしろ私のリゾルバを指定するグローバルよりurlResolver属性を指定します。この属性は、最初にサイトマップファイルを整理して最小化するだけのリゾルバを指定するという目的を破ります。
  2. それは、私はそれが

作業必要リゾルバを見つけたら、だから私は二つの関連の問題を推測します。

答えて

0

MvcSiteMapProvider v4は従来のASP.NET 2.0 web.config設定を無視します。これは設計によるものです。設定は依存性注入によって100%完了しましたが、外部DIコンテナを使用せずに基本設定に使用できるものがあります。appSettingsがあります。マニュアルを参照してください:

関連する問題