Aracılığıyla paylaş


SiteMapProvider.FindSiteMapNode Yöntem

Tanım

Türetilmiş bir sınıfta geçersiz kılındığında, sayfayı temsil eden bir SiteMapNode nesneyi alır.

Aşırı Yüklemeler

FindSiteMapNode(String)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen URL'deki sayfayı temsil eden bir SiteMapNode nesnesi alır.

FindSiteMapNode(HttpContext)

Belirtilen HttpContext nesneyi kullanarak şu anda istenen sayfayı temsil eden bir SiteMapNode nesnesi alır.

FindSiteMapNode(String)

Türetilmiş bir sınıfta geçersiz kılındığında, belirtilen URL'deki sayfayı temsil eden bir SiteMapNode nesnesi alır.

public:
 abstract System::Web::SiteMapNode ^ FindSiteMapNode(System::String ^ rawUrl);
public abstract System.Web.SiteMapNode FindSiteMapNode (string rawUrl);
abstract member FindSiteMapNode : string -> System.Web.SiteMapNode
Public MustOverride Function FindSiteMapNode (rawUrl As String) As SiteMapNode

Parametreler

rawUrl
String

öğesinin alındığı sayfayı tanımlayan URL SiteMapNode.

Döndürülenler

SiteMapNode

SiteMapNode tarafından rawURLtanımlanan sayfayı temsil eden bir ; aksi takdirde, nullkarşılık gelen SiteMapNode yoksa veya güvenlik kırpma etkinleştirildiyse ve SiteMapNode geçerli kullanıcı için döndürülemez.

Örnekler

Aşağıdaki kod örneği, soyut SiteMapProvider sınıfı uygulayan bir sınıfta yönteminin nasıl uygulandığını FindSiteMapNode gösterir. nesnesinden SimpleTextSiteMapProvider HttpContext o anda görüntülenen sayfanın URL'sini almak için adlı FindUrlbir yardımcı yöntemi kullanır.

Bu kod örneği, sınıfı için SiteMapProvider sağlanan daha büyük bir örneğin parçasıdır.

// Implement the FindSiteMapNode method.
public override SiteMapNode FindSiteMapNode(string rawUrl)
{

  // Does the root node match the URL?
  if (RootNode.Url == rawUrl)
  {
    return RootNode;
  }
  else
  {
    SiteMapNode candidate = null;
    // Retrieve the SiteMapNode that matches the URL.
    lock (this)
    {
      candidate = GetNode(siteMapNodes, rawUrl);
    }
    return candidate;
  }
}
' Implement the FindSiteMapNode method.
Public Overrides Function FindSiteMapNode(ByVal rawUrl As String) As SiteMapNode
  ' Does the root node match the URL?
  If RootNode.Url = rawUrl Then
    Return RootNode
  Else
    Dim candidate As SiteMapNode = Nothing
    ' Retrieve the SiteMapNode that matches the URL.
    SyncLock Me
      candidate = GetNode(siteMapNodes, rawUrl)
    End SyncLock
    Return candidate
  End If
End Function 'FindSiteMapNode
private SiteMapNode GetNode(ArrayList list, string url)
{
  for (int i = 0; i < list.Count; i++)
  {
    DictionaryEntry item = (DictionaryEntry)list[i];
    if ((string)item.Key == url)
      return item.Value as SiteMapNode;
  }
  return null;
}

// Get the URL of the currently displayed page.
private string FindCurrentUrl()
{
  try
  {
    // The current HttpContext.
    HttpContext currentContext = HttpContext.Current;
    if (currentContext != null)
    {
      return currentContext.Request.RawUrl;
    }
    else
    {
      throw new Exception("HttpContext.Current is Invalid");
    }
  }
  catch (Exception e)
  {
    throw new NotSupportedException("This provider requires a valid context.",e);
  }
}
Private Function GetNode(ByVal list As ArrayList, ByVal url As String) As SiteMapNode
  Dim i As Integer
  For i = 0 To list.Count - 1
    Dim item As DictionaryEntry = CType(list(i), DictionaryEntry)
    If CStr(item.Key) = url Then
      Return CType(item.Value, SiteMapNode)
    End If
  Next i
  Return Nothing
End Function 'GetNode


' Get the URL of the currently displayed page.
Private Function FindCurrentUrl() As String
  Try
    ' The current HttpContext.
    Dim currentContext As HttpContext = HttpContext.Current
    If Not (currentContext Is Nothing) Then
      Return currentContext.Request.RawUrl
    Else
      Throw New Exception("HttpContext.Current is Invalid")
    End If
  Catch e As Exception
    Throw New NotSupportedException("This provider requires a valid context.", e)
  End Try
End Function 'FindCurrentUrl

Açıklamalar

sınıfından türetilen sınıfların SiteMapProvider soyut FindSiteMapNode yöntemini uygulaması gerekir.

Sağlanan URL sanal veya mutlak bir URL olabilir. Ayrıca, gibi ~/apprelativedirectoryuygulama göreli söz dizimi kullanan bir URL de olabilir. Yöntemin herhangi bir uygulamasının uygulama göreli söz dizimini FindSiteMapNode düzgün bir şekilde ayrıştırdığından ve işlediğinden emin olun.

XmlSiteMapProvider ASP.NET için varsayılan site haritası sağlayıcısı olan sınıfı, sınıfların koruduğu çeşitli koleksiyonlarda anahtar olarak bir SiteMapNode nesnenin URL'sini kullanır. Bu nedenle, bir SiteMapNode URL sağlarsa, site haritası sağlayıcısı kapsamında benzersiz olmalıdır. URL sağlanmazsa, öğesini tanımlamak SiteMapNodeiçin benzersiz bir tanımlayıcı oluşturulur.

Uygulayanlara Notlar

Türetilmiş bir sınıfta yöntemini geçersiz kıldığınızda FindSiteMapNode(String) , URL ile eşleşen bir SiteMapNode nesne geçerli site haritasında sağlayıcı tarafından bulunamazsa ve sağlayıcı alt sağlayıcıları destekliyorsa, aramayı alt sağlayıcılara genişlettiğinden emin olun.

Ayrıca bkz.

Şunlara uygulanır

FindSiteMapNode(HttpContext)

Belirtilen HttpContext nesneyi kullanarak şu anda istenen sayfayı temsil eden bir SiteMapNode nesnesi alır.

public:
 virtual System::Web::SiteMapNode ^ FindSiteMapNode(System::Web::HttpContext ^ context);
public virtual System.Web.SiteMapNode FindSiteMapNode (System.Web.HttpContext context);
abstract member FindSiteMapNode : System.Web.HttpContext -> System.Web.SiteMapNode
override this.FindSiteMapNode : System.Web.HttpContext -> System.Web.SiteMapNode
Public Overridable Function FindSiteMapNode (context As HttpContext) As SiteMapNode

Parametreler

context
HttpContext

Düğüm HttpContext bilgilerini istenen sayfanın URL'si ile eşleştirmek için kullanılır.

Döndürülenler

SiteMapNode

SiteMapNode şu anda istenen sayfayı temsil eden bir; aksi takdirde, nulliçinde karşılık gelen SiteMapNode SiteMapNode yoksa veya sayfa bağlamı ise null.

Açıklamalar

yöntemi, FindSiteMapNode ham URL'yi veya isteğin sanal yolunu temel alarak istenen sayfanın nesnesini SiteMapNode almak için soyut FindSiteMapNode yöntemini çağırır. içinde SiteMapnull karşılık gelen SiteMapNode bir şey bulunmazsa döndürülür.

FindSiteMapNode yöntemi, varsayılan olarak bir SiteMapNode kullanıcı için erişilebilir olup olmadığını denetlemez.

Ayrıca bkz.

Şunlara uygulanır