2012-12-05 1 views
0

다른 웹 파일의 많은 장소에서 특정 URL을 가져와야합니다. 그래서 XML 형식으로 사이트 맵을 작성하기 시작합니다. 네비게이션 메뉴 나 빵 부스러기가 필요 없으며, 단순히 리소스 키에 의해 URL을 얻습니다. 불행히도 지금까지 모든 판독은 탐색 메뉴를 설정하는 방법을 설명합니다. 그리고 지금까지 내가 시도한 모든 것은 단지 나를 오류로 이끌었습니다.FindSiteMapNodeFromKey (string) Asp.net을 사용하는 방법? 작동하지 않음

나는이 같은 뭔가가 필요 , (그러나 예외 : 개체 참조가 개체의 인스턴스로 설정 또한 Mynode1 항상 아니다.) :

SiteMapNode MyNode1 = new SiteMapNode(MyXmlSiteMapProvider, "Product1"); 
HyperLink1.NavigateUrl = MyNode1.Url; 

나는 또한 이렇게 :

SiteMapNode MyNode1 = new SiteMapNode(MyXmlSiteMapProvider, "Product1"); 
    MyNode1= MyXmlSiteMapProvider.FindSiteMapNodeFromKey("Product1"); 
    HyperLink1.NavigateUrl = MyNode1.Url; 

또한 다음 MyXmlSiteMapProvider 및 BuildSiteMap()을 초기화 할 수있는 NameValueCollection은과 providerAttributes으로 시도하지만, 같은 결과. (빈 링크 또는 오류)

내 사이트 맵이

<siteMap defaultProvider="XmlSiteMapProvider" enabled="true"> 
     <providers> 
     <add name="XmlSiteMapProvider" 
      description="SiteMap provider that reads in .sitemap files." 
      type="System.Web.XmlSiteMapProvider" 
      siteMapFile="web.sitemap" /> 
     </providers> 
    </siteMap> 
을 가지고,이

<?xml version="1.0" encoding="utf-8" ?> 
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" > 
    <siteMapNode url="~/default.aspx" title="Home" description="Homepage" resourceKey="home"> 
    <siteMapNode url="~/products/mainlist.aspx" title="List of products" description="" resourceKey="listOfProducts" > 
     <siteMapNode url="~/products/catA/someproduct.aspx" title="Product tittle" description="" resourceKey="Product1"/> 
    </siteMapNode> 
    </siteMapNode> 
</siteMap> 

내 Web.Config 파일 (파일 이름이 web.sitemap입니다)처럼 보인다

이 작업을 수행 할 수있는 간단한 방법을 아는 사용자에게 미리 감사드립니다.

답변

0

나는 너처럼 똑같은 문제가있다. 이제 나를 이해해. http://msdn.microsoft.com/en-us/library/system.web.sitemapprovider.findsitemapnodefromkey.aspx

인용문 ASP.NET의 기본 사이트 맵 공급자 인 XmlSiteMapProvider 클래스는, 클래스가 유지 다양한 컬렉션을 핵심으로 SiteMapNode의 URL을 사용 설명서를 참조하십시오. 따라서 노드가 URL을 제공하면 사이트 맵 공급자의 범위 내에서 고유해야합니다. URL이 제공되지 않으면 고유 한 식별자가 생성되어 SiteMapNode를 식별합니다.

관련 문제