【问题标题】:How can I read what the destination URL is when a redirect is requested?请求重定向时如何读取目标 URL?
【发布时间】:2009-09-25 04:56:35
【问题描述】:

我在页面上使用带有动态菜单栏的MasterPage。如果用户请求重定向回登录(主页)页面,我不想将它们注销,但我确实想隐藏菜单栏。目前我正在使用用户是否经过身份验证来控制菜单栏是否可见。

基本上,我想在登录页面时始终隐藏菜单栏。菜单在页面本身之前呈现,因此我需要能够读取重定向请求以查看登录页面是否是目标。我尝试了一个Response.RedirectLocation 字段,但这似乎为空。

如何确定重定向请求是什么?

【问题讨论】:

    标签: asp.net vb.net master-pages response.redirect


    【解决方案1】:

    我认为你把它弄得更复杂了。

    如果您使用母版页,只需在母版页中公开一个公共功能,您的内容页可以调用它并隐藏您的菜单。因此,在您的登录页面中,您将始终调用母版页隐藏菜单功能。

    这是 MSDN 文章的链接,该文章解释了如何公开母版页:

    http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx

    编辑:您需要将 MasterPage 的类命名为 MyMasterPage。然后确保您在 Master 的 aspx 页面中的继承属性是正确的:

    Inherits="Your.Name.Space.MyMasterPage"
    

    然后在您的内容页面中,您应该只添加以下内容:

    <%@ MasterType TypeName="Your.Name.Space.MyMasterPage" %>
    

    最后,您现在可以访问母版页中的任何内容,因为您已经定义了它的类型:

    Master.CallYourFunction();
    

    如果您按照这些步骤操作,那应该可以帮助您工作。

    【讨论】:

    • 听起来很合理,我会试试这个。谢谢
    • 我能够在母版页上定义公共 Sub,但我没有从逻辑页中定义。登录页面确实引用了 ASPX 中的母版。我做错了什么?
    • 如果您的母版页名为“MyMasterPage”,您必须在登录页面上执行此操作:((MyMasterPage)Master).HideMenuFunction()。
    • 当... 语法错误。我的主人被定义了 我编码 ((MasterPage)Master.HideMenuBar()
    【解决方案2】:

    使重定向将原始 url 作为 URL 参数发送,如

    &origurl=http://www.domain.com/original_page
    

    【讨论】:

      【解决方案3】:

      如果您只是想在登录页面上隐藏菜单栏,那就不难了。您可以做的是将 Manu bar 放在 Mater Page 的 ContentPlaceHolder 中。在您的登录页面上,您只需添加空白内容,这将覆盖主页面中的菜单 ContentPlaceholder。

      <asp:Content ID="Content2" ContentPlaceHolderID="MenuContent" Runat="Server">
      

      这是 Mater 页面上的声明式语法

      <asp:ContentPlaceHolder id="MenuContent" runat="server"> Your Menu goes here    </asp:ContentPlaceHolder> 
      

      现在在其他页面上,您不必覆盖默认内容,即从您需要显示菜单的 Mater 页面显示菜单。

      您可以阅读更多关于覆盖 Here 的 Mater Page 的默认内容。

      【讨论】:

        猜你喜欢
        • 2023-03-18
        • 2011-12-23
        • 1970-01-01
        • 1970-01-01
        • 2016-05-13
        • 1970-01-01
        • 1970-01-01
        • 2011-01-22
        • 2021-09-06
        相关资源
        最近更新 更多