重定向后href无法正常工作

时间:2013-06-02 15:02:51

标签: c# asp.net

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

analysis.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应重定向到管理文件夹中的类似版本

analysis.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页面,一个在项目文件夹中,另一个在管理员中。

系统管理员/ 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

后,地址栏会显示以下内容

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果我看到您的代码,似乎您没有在href上放置runat =“sever”属性。如果你想在asp.net上使用〜作为root符号,那么你需要添加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>

如果它解决了您的问题,请告诉我