2012-07-28 4 views
0

데이터베이스 테이블에 탐색/사이트 맵/사이트 구조를 저장하는 간단한 CMS를 구축 중입니다. 앱이 시작되면 해당 테이블의 데이터를 기반으로 동적으로 사이트 맵 노드를 만들 수 있습니다.코드에서 mvcsitemap에 노드 추가

내가 겪고있는 문제는 새로운 레코드가 테이블에 추가되거나 앱이 실행되는 동안 기존 레코드가 업데이트되면 사이트 맵 구조를 다시 만들어야한다는 것입니다. 충분히 단순 해 보이지만 나는 어떻게되는지 알 수 없다.

답변

1

즉석에서 사이트 맵을 지우거나 다시 작성하는 기능은 기본적으로 제공되지 않습니다.
그러나 MvcSiteMapProvider.DefaultSiteMapProvider에서 파생 된 사용자 지정 sitemapprovider를 구현하고 보호 된 Clear() 메서드를 사용하여 캐시를 지우는 데 사용되는 메서드를 만들어이 메서드를 직접 구현할 수 있습니다. 예 :

public class CustomSiteMapProvider : DefaultSiteMapProvider 
{ 
    public void ClearSiteMap() 
    { 
    Clear(); 
    } 
} 

시도해 보았지만 제대로 작동합니다. DefaultSiteMapProvider 대신 custom sitemapprovider를 사용하도록 web.config 파일을 변경해야합니다.

+0

이미 맞춤 사이트 맵 제공 업체가 있습니다. 시험해 보겠습니다. 감사합니다. – JBeckton