如何在请求重定向时读取目标URL?

时间:2009-09-25 04:56:36

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

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

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

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

3 个答案:

答案 0 :(得分:0)

我认为你需要做的更复杂。

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

以下是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();

如果您按照这些步骤操作,这应该让您工作。

答案 1 :(得分:0)

使重定向发送原始网址作为URL参数,如

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

答案 2 :(得分:0)

如果您只是在登录页面上隐藏菜单栏,那么它就不会很难了。您可以做的是将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 Page的默认内容超过Here的更多信息。