文件夹名称附加在URL中

时间:2013-12-14 19:11:30

标签: asp.net url web-applications repeater

我正在构建一个ASP.NET / VB Web应用程序。在我的Main.Master页面中,我使用Repeater控件作为我的类别(导航)菜单。它使用Category控件从我的SQLDataSource表中提取数据。 Item Template的{​​{1}}就是:

Repeater

现在问题:

在我的项目结构中,我创建了一个名为<ItemTemplate> <div class="category_item"> <li> <a href='ProductsList.aspx?CategoryId=<%#Eval("category_id")%>'><%#Eval("category_name")%></a> </li> </div> </ItemTemplate> 的文件夹,其中包含与管理员相关的页面,还有一个名为Administration的文件夹。 如果我导航到任何一个文件夹中的页面(我假设它会发生在我创建的任何文件夹中),然后尝试使用我的Account导航到其他位置,文件夹名称将附加在URL路径中,如下所示:

在:

Repeater

之后:(假设我登录并访问了其中一个文件夹中的页面)

http://localhost:xxxx/ProductsList.aspx?CategoryId=3

可能导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:1)

当应用程序运行时,它会在磁盘上存储“默认”文件夹路径 - 这通常是存储可执行(.exe)文件的文件夹。如果您的代码使用函数来更改该位置(如Directory.SetCurrentDirectory())以进入您的子文件夹,它将更改该“默认”文件夹设置。

如果导航页面上的链接没有指定页面的完整路径,就像你只是在链接中放入“NextPage.asp”而不是“E:\ folder \ NextPage.asp”那么当应用程序获得“fullpath”到文件时,它会在尝试查找文件时预先挂起URL的默认文件夹路径。

解决此问题的一种简单方法是,只需将导航网址中的每个网页的完整网址路径设置为第一个网址:

http://localhost:xxxx/ProductsList.aspx?CategoryId=3