从后面的代码更改asp.net页面的URL

时间:2010-09-23 12:07:25

标签: asp.net url request query-string

我试图通过点击按钮将当前aspx页面的url更改为另一个url。使用Request.Url.AbsoluteUri我可以获取url但是可以修改吗?如果是,我将采取什么行动,这将是一个新请求或回复。

请告诉我你的意见。

谢谢, Mehul makwana

4 个答案:

答案 0 :(得分:5)

不,无法从后面的代码修改当前页面的URL。

当代码运行时,新请求或回发已在进行中,因此一旦新响应完成,当前页面将不再存在。

当浏览器中加载当前正在创建的页面时,将使用它的URL而不是当前页面的URL。此URL已在请求之前确定,因此您也无法更改。

您可以使用Response.Redirect方法将重定向页面返回到具有所需URL的浏览器。然后,浏览器将向服务器发出另一个请求以获取包含该URL的页面。

如果您想在不使用重定向的情况下更改页面的URL,那么在代码中执行此操作为时已晚。您必须使用客户端脚本更改按钮的功能,以便它直接请求新URL而不进行回发。

答案 1 :(得分:3)

您可以使用Response.Redirect()Server.Transfer(),但我会使用前者而不是后者。

答案 2 :(得分:2)

考虑使用jQuery或类似的库 - 它将允许您修改页面的DOM。如果只能在服务器上生成新URL,则考虑向服务器发送ajax请求。 Web方法将返回一些包含新URL的自定义对象。您将使用Web方法返回的数据,并使用jQuery或任何类似的库替换它。

答案 3 :(得分:1)

它将是new request

您可以尝试使用Response.RedirectServer.Transfer