配置ASP.NET站点地图URL域

时间:2010-06-02 20:38:21

标签: asp.net vb.net sitemap sitemapprovider

我有一个如下配置的站点地图:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="www.website.com/index.aspx" title="Site Name"  description="">

    <siteMapNode url="home.aspx" title="My Home"  description="My Home" Group="Active">

        <siteMapNode url="Search.aspx" title="Search"  description="Search For Roommate" Group="Active">
            <siteMapNode url="SearchResults.aspx" title="Search Results"  description="Roommate Search Results" Group="Active"/>
        </siteMapNode>

        <siteMapNode url="Extend.aspx" title="Extend Account"  description="Extend Account" Group="Active"/>

        <siteMapNode url="Hotlist.aspx" title="Hotlist"  description="Hotlist" Group="Active"/>

我有一个自定义的痕迹导航功能,如下所示:

Public Shared Function SitePath(ByVal tr As String, Optional ByVal type As String = "REG") As String
    If SiteMap.Providers(type).CurrentNode IsNot Nothing And SiteMap.Providers(type).CurrentNode IsNot SiteMap.Providers(type).RootNode Then
        Dim currentNode As SiteMapNode
        currentNode = SiteMap.Providers(type).CurrentNode
        Dim path As String = currentNode.Title
        Dim str As String = ""

        Do
            currentNode = currentNode.ParentNode
            path = "<a href=""" & shsutils.generateURLSecure(currentNode.Url, tr & str) & """>" & currentNode.Title & "</a>" & "&nbsp;&gt;&nbsp;" & path
        Loop While currentNode IsNot SiteMap.Providers(type).RootNode

        SitePath = path
        Exit Function
    End If
    SitePath = ""
End Function

出于某种原因,即使在站点地图中,网址定义为“www.website.com/index.aspx”或“home.aspx”,currentNode.URL也始终将网址附加到网址上,不好的网址,例如“www.domain.com/www.website.com/index.aspx”

我试图通过搜索我的项目和我的web.config文件来找出www.domain.com的来源,但我似乎无法找到它。

有任何想法或建议吗?

1 个答案:

答案 0 :(得分:0)

我找到了原因。

域已在web.config文件内配置,位于

    <appSettings>
    <add key="domain" value="www.domain.com" />
    </appSettings>

子目录是由于应用程序托管在虚拟目录中。两者的结合是sitenode如何创建网址。