Я написал свой собственный staticsitemapprovider, который создает динамическую карту сайта. У меня проблема в том, что иногда страницы имеют дополнительные параметры в строке запроса, которые мне нужно игнорировать.
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
Я также переопределил функцию FindSiteMapNode, которая принимает объект HttpContect. После этого я просто нахожу URL-адрес этого запроса и запускаю его, используя ту же функцию, что и выше.
Однако при этом мой sitemappath (который привязан к карте сайта) ничего не возвращает на каждой странице.