0

首先,我想就我提出的问题道歉,因为我不知道如何继续下去

我使用 vb 在 asp.net 中创建了一个网站,但我遇到了问题。

我创建了一个数据库来显示带有页面位置的菜单名称。

我在根文件夹 /Pages 中创建了一个名为 /Pages/MasterPages 的文件夹,其中母版页设计位于其中,而普通的冲浪页面位于根文件夹中

我还有一个名为 /Pages/Admin 的文件夹,该站点的 CMS 进入其中。

现在我有以下代码从数据库中调用菜单项

<asp:Repeater ID="_menuDisplay" runat="server">
                                        <HeaderTemplate>
                                            <table id="navigation" border="0">
                                        </HeaderTemplate>
                                        <ItemTemplate>
                                            <tr>
                                                <td><asp:HyperLink ID="Hyperlink" runat="server" NavigateUrl=<%# Container.DataItem("pageName") %>><%# Container.DataItem("menuName")%></asp:HyperLink> </td>
                                            </tr>
                                        </ItemTemplate>
                                        <FooterTemplate>
                                            </table>
                                        </FooterTemplate>
                                    </asp:Repeater>

Container.DataItem("pageName") 显示页面/home.aspx Container.DataItem("menuName") 显示主页(home.aspx 页面的名称)

上面的代码在母版页中

执行时 Internet Explorer 上的页面名称显示 pages/masterpage/pages/home.aspx 它应该只显示 pages/home.aspx

请帮忙

问候

乐华M

4

1 回答 1

0

尝试这样的事情

1:在您的代码隐藏页面中创建一个公共函数。IE

Public Function ResolveUrl(objValue as object) as String
     Dim sPath as String = Page.ResolveUrl(cstr(objValue))
     Return sPath  
End Function  

2:更改网页中的代码:

NavigateUrl=<%# ResolveUrl(Container.DataItem("pageName")) %>

3:确保您的页面名称格式为“ ~/FolderPath/File.aspx ”,~ 告诉 asp.net 引擎从解决方案的根目录映射页面。

希望这可以帮助。

于 2011-06-15T07:22:07.990 回答