解析绑定数据中的url

时间:2011-03-17 14:15:30

标签: asp.net

我想在某些页面中显示菜单。

菜单是从带有转发器的db构建的

<asp:Repeater ID="mainMenu" runat="server">
                    <HeaderTemplate>
                        <ul>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <li><a href="<%# Page.ResolveClientUrl((string)Eval("TD_PageName"))%>"><%# Eval("TD_Name")%></a></li>
                    </ItemTemplate>
                    <FooterTemplate>
                        </ul>
                    </FooterTemplate>
                </asp:Repeater>

当我在“folder / page1.aspx”时,所有链接都可以(“http://localhost/folder/folder2/page1.aspx”)。当我在文件夹“folder / folder2 / page1.aspx”时,链接是“http://localhost/folder/folder2/folder2/page1.aspx”

更新: 我把它改成

<a href="<%# VirtualPathUtility.ToAbsolute("~/admin/"+(string)Eval("TD_PageName"))%>"><%# Eval("TD_Name")%></a>

2 个答案:

答案 0 :(得分:2)

您可能需要在网址的开头加上“/”才能使其成为绝对值。

<a href="/<%# Page.ResolveClientUrl((string)Eval("TD_PageName"))%>"><%# Eval("TD_Name")%></a>

答案 1 :(得分:0)

我不确定上面的代码是否正确,但你是说所有页面都存在于“http:// localhost / folder / folder2 /”中,这与你想要查找的内容不符

folder / page.aspx = folder / folder2 / page1.aspx

folder / folder2 / page1.aspx = folder / folder2 / folder2 / page1.aspx

看起来它正确引用,但如果你说它们没有,那么你可能没有在数据库中存储正确的URL。

编辑:您提供的信息仍然不是很清楚预期的行为是什么以及您的错误发生在哪里。