IIS7重写模块和ASP.net Request.PhysicalPath

时间:2012-02-14 19:57:30

标签: c# asp.net url iis-7 url-rewriting

我的任务是为客户创建面包屑功能。他们当前的网站设置为基于XML /文件。每个.aspx页面都是N级深度,控件连接到各自的.xml文件。

我决定通过pages目录结构实现面包屑。我抓住物理路径,剥离根,拆分目录,并使用这些部分作为我的面包屑。他们的所有文件夹都是在CamelCase中命名的,所以我使用驼峰套管来分解单词以便显示。

例如:网站可能看起来像

主页

- SubDir 1

------ SubDir 1.1

---------- MyPage.aspx

- SubDir 2

------ MySecondPage.aspx

如果您使用的是“MyPage.aspx”..您获得的面包屑是:

主页 - >子目录1 - > Sub Dir 1.1 - >我的页面

这是我遇到的问题。客户端还使用IIS7重写模块来强制执行小写URL。这个问题是我在Request.PhysicalPath调用中返回的值都是小写的,所以我的显示文本不起作用(因为它依赖于CamelCase)。如果我关闭IIS7强制执行,它会显示如上。如果没有,我会得到:

主页 - > subdir 1 - > subdir 1.1 - >我的空间

是否有通过IIS7重写模块强制执行小写URL而不会影响Request.PhysicalPath(或Request.PhysicalApplicationPath)调用?

由于

1 个答案:

答案 0 :(得分:0)

我认为在这种情况下你不能依赖Request.PhysicalPath。

尝试使用approach from this question获取正确大小的实际文件名

相关问题