我使用UrlMapping时无法使用Sitemap

时间:2009-04-22 20:43:45

标签: asp.net c#-2.0 url-mapping

当我为每个页面创建文件夹并重新映射到web.config中时,出现了这个问题。

1)我看不到页面的内容。

2)当我使用导航控件时,我的web.SiteMap不起作用,也不显示页面路径。

我的项目有什么问题,我解决了什么?

此链接是我的网站:

Urlmapping代码:

<urlMappings>
        <add url ="~/HOME" mappedUrl ="~/Default.aspx"/>
        <add url ="~/a" mappedUrl ="~/a.aspx" />
        <add url ="~/a1" mappedUrl ="~/a1/a1.aspx"/>
        <add url ="~/a2" mappedUrl ="~/a2/a2.aspx"/>
        <add url ="~/b" mappedUrl ="~/b/b.aspx"/>
        <add url ="~/b1" mappedUrl ="~/b1/b1.aspx"/>
        <add url ="~/b2" mappedUrl ="~/b2/b2.aspx"/>
        <add url ="~/b3" mappedUrl ="~/b3/b3.aspx"/>
        <add url ="~/c" mappedUrl ="~/c/c.aspx"/>
        <add url ="~/c1" mappedUrl ="~/c1/c1.aspx"/>

          </urlMappings>

SiteMap代码:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >

<siteMapNode url="~/HOME" title="Home"  description="Home Page">

  <siteMapNode url="~/a" title="page a" description="page a">
    <siteMapNode url="~/a1" title="page a-1" description="page 1 of a" />
    <siteMapNode url="~/a2" title="page a-2" description="page 2 of a"/>
  </siteMapNode>

  <siteMapNode url="~/b" title="page b" description="page b">
    <siteMapNode url="~/b1" title="page b-1" description="page 1 of b" imageTitle="lake"/>
    <siteMapNode url="~/b2" title="page b-2" description="page 2 of b" imageTitle="wolf"/>
    <siteMapNode url="~/b3" title="page b-3" description="page 3 of b" imageTitle="thunder"/>
  </siteMapNode>

  <siteMapNode url="~/c" title="page c" description="page c">
    <siteMapNode url="~/c1" title="page c-1" description="page 1 of c"/>
  </siteMapNode>

</siteMapNode>

2 个答案:

答案 0 :(得分:0)

问题是您想要的Url是wbesite中的实际文件夹,因此IIS首先会选择此文件夹。有很多方法可以解决这个问题。

  • 将所有.aspx文件名更改为Default.aspx,这些将在您键入http://website/a时被选中,例如,如果您有一个名为“a”的文件夹,其中包含Default.aspx,请删除所有条目urlMappings
  • 将URL作为与实际目录不同的名称
  • 使用3.5 SP1中引入的ASP.Net URL路由查看Chis Cavanagh博客文章。
  • 使用Jose提到的ReWritter

答案 1 :(得分:0)

我可以解决我的问题。

您应该创建名称为Default的文件夹,并创建名称为default的页面,然后在导航控件中使用web.sitemap。