J'ai écrit mon propre staticitemapprovider qui crée une carte de site dynamique. Le problème que j'ai est que parfois les pages auront des paramètres supplémentaires dans la chaîne de requête que j'ai besoin d'ignorer.Ignorer des paramètres de chaîne de requête spécifiques dans sitemapprovider personnalisé
Public Overrides Function FindSiteMapNode(ByVal rawUrl As String) As SiteMapNode
Dim startpos As Integer = 0
Dim endpos As Integer = 0
If rawUrl.Contains("pagetype=") Then
startpos = rawUrl.IndexOf("pagetype=")
endpos = rawUrl.IndexOf("&", startpos) + 1
If endpos >= startpos Then
'not the last param
rawUrl = rawUrl.Remove(startpos, endpos - startpos)
Else
'must be the last param
rawUrl = rawUrl.Remove(startpos)
End If
End If
Return MyBase.FindSiteMapNode(rawUrl)
End Function
J'ai aussi la fonction même remplacée FindSiteMapNode qui prend dans un objet HttpContect. Avec cela, je trouve simplement l'URL de cette requête et l'exécute avec la même fonction ci-dessus. Cependant, avec ceci, mon sitemappath (lié au plan du site) ne renvoie rien sur chaque page.