ASP.NET页面重定向/交叉插件

时间:2009-06-12 18:35:42

标签: asp.net redirect

我有3个asp.net页面:Search.aspx,Results.aspx和Login.aspx。 现在我希望匿名用户能够搜索,所以每个人都可以使用search.aspx。此页面调用

Server.Transfer(Results.aspx)

因此显示结果。现在,当用户未登录时,“结果”页面上会显示指向登录页面的链接。问题是: 登录后,我希望将用户自动重定向到“结果”页面。但是我没有成功,因为Login.aspx的PreviousPage属性始终为null。当我使用

Request.UrlReferrer.LocalPath

它是Search.aspx的链接,但不是Results.aspx。 此外,当用户在“结果”页面上时,如何通过单击链接使他返回,并且Search.aspx上的所有搜索输入条件(如文本框中)仍然存在,以便他可以在完成搜索后优化搜索见过结果?每当我发回用户时,所有用户输入都会丢失。 我仍然没有弄清楚我是否应该使用普通超链接,链接按钮以及如何检索上一页网址或保留输入数据。

如果有任何帮助我可以使用AJAX,但首选“纯粹的”asp.net解决方案。

4 个答案:

答案 0 :(得分:3)

当您执行Server.Transfer时,它是服务器端重定向...意味着客户端仍然可以看到原始URL。您需要将搜索条件发布到结果页面,将它们存储在本地,显示登录链接。登录后,您可以重定向到结果页面并重新水化搜索标准并显示结果。

答案 1 :(得分:1)

您可以使用User.Identity.IsAuthenticated来检查用户是否已登录并显示/隐藏登录按钮。

要保留页面的值,您可以将它们存储在Session中,然后让“搜索”页面查找它们,如果存在,则将它们放在控件中。

答案 2 :(得分:1)

尝试使用Response.Redirect(“url”)而不是Server.Transfer。当您使用Server.Transfer时,客户端上的URL将保留为“搜索”页面,而不是实际重定向到结果。

答案 3 :(得分:0)

如果需要,您还可以在登录查询字符串后嵌入要返回的URL。