2016-11-02 163 views
0

我的web.config中的siteMap元素被忽略。爲什麼是這樣? 我的目標是讓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. 一旦找到我需要它的工作

解析器所以我想兩個相關的問題。

回答