我是一个菜鸟 Web 开发人员,在 C#、VS2005 中创建一个站点并使用 .master 文件。
我想让站点中的每个页面都知道它在目录结构中的当前位置,这样我就可以在每个页面上显示适当的导航链接。
我在 .master 文件中编写了以下代码来查找相对于当前页面的目录结构。它在我位于 localhost/mysite 的测试服务器上运行良好,但是当我推送到位于 www.example.coom 的公共站点时,代码会中断。
我发现问题出在“int depth = h-2”行上。如果我将其更改为 h-1,它可以在 mysite.org 上运行。但这是一个丑陋的解决方案。
int nUrlSegments = this.Page.Request.Url.Segments.GetLength(0);
string[] thisPageArray = new string[nUrlSegments];
for (int i = 0; i < nUrlSegments; i++)
thisPageArray[i] = Page.Request.Url.Segments[i].ToString();
int h = 0;
while (!thisPageArray[h].Contains(".aspx"))
h++;
int depth = h - 2;
string pathToTop = "";
for (int j = 1; j <= depth; j++)
pathToTop = pathToTop + "../";
string currentpage = thisPageArray[nUrlSegments-1].ToString();
string currentdir = "";
if (nUrlSegments > 1)
currentdir = thisPageArray[nUrlSegments - 2].ToString();
找到每个页面在目录结构中的位置的更好方法是什么?