0

我在主项目文件夹中有以下导航按钮,可以正确导航到每个页面

分析.aspx:

<div id="top-menu" class="float-right">
<ul class="main">
    <li><a href="home.aspx" class="current"><span>Home</span></a> </li>
    <li><a href="analysis.aspx"><span>Analysis</span></a> </li>
    <li><a href="blog.aspx"><span>Blog</span></a> </li>
    <li><a href="contact.aspx"><span>Contact</span></a> </li>
</ul>
</div>

当用户正确登录时,analysis.aspx应该重定向到管理员文件夹中的类似版本

分析.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.User.IsInRole("admin"))
    {
        //Admin
        Response.Redirect("/admin/analysis.aspx");
        //base.OnLoad(e);
    }
    else if (Page.User.IsInRole("member"))
    {
        //Members
    }
    else if (Page.User.IsInRole("trial"))
    {
        //Trial
    }
    Else
    {
        //Keep Out

    }
}

这工作正常。但是,在重定向到 admin/analyis.aspx 页面后,所有链接都不起作用。该页面似乎正在刷新,但仍停留在同一页面上。我试图链接到基础项目文件夹和管理文件夹中的页面但没有成功,到目前为止我已经尝试过但没有成功。有 2 个 home.aspx 页面,一个在项目文件夹中,一个在 admin 中。

管理员/analysis.aspx.cs:

<li><a href="home.aspx" class="current"><span>Home</span></a> </li>
<li><a href="~/home.aspx" class="current"><span>Home</span></a> </li>
<li><a href="~/admin/home.aspx" class="current"><span>Home</span></a> </li>
<li><a href="/admin/home.aspx" class="current"><span>Home</span></a> </li>

点击后地址栏显示如下http://localhost:6246/admin/analysis.aspx?ReturnUrl=%2fadmin%2fhome.aspx

任何想法我做错了什么?

4

1 回答 1

1

如果我看到您的代码,您似乎没有将 runat="sever" 属性放在 href 上。如果你想在 asp.net 上使用 ~ 作为根符号,那么你需要添加 runat="server" 属性,这样会让 .NET 框架将对象编译为 asp.net 对象。

尝试这个

<li><a href="home.aspx" class="current" runat="server"><span>Home</span></a> </li>
<li><a href="~/home.aspx" class="current" runat="server"><span>Home</span></a> </li>
<li><a href="~/admin/home.aspx" class="current" runat="server"><span>Home</span></a> </li>
<li><a href="/admin/home.aspx" class="current" runat="server"><span>Home</span></a> </li>

让我知道它是否解决了您的问题

于 2013-06-02T15:10:21.897 回答