如何更改浏览器URL栏中的URL

时间:2012-02-17 14:55:04

标签: c# asp.net

我在我的asp.net应用程序中使用server.transfer()方法来重定向响应。但我遇到的问题是它在浏览器网址栏上设置了上一页网址(从中生成页面的原始请求)。我想在浏览器中更改网址。它甚至可能吗?

我调查了它,我知道Request有一个url属性但是只读它。有没有人知道改变请求中网址的方法?

4 个答案:

答案 0 :(得分:4)

使用Response.Redirect();代替server.transfer();,并在浏览器中重定向。

如果你做不到,你可以使用pushState(至少where it's aviable)来更改网址,但这似乎有点过分......

最好的方法显然是改变

  server.transfer();

  Response.Redirect();

修改

因为你想获得最大的性能,你可以使用带有两个参数的Response.Redirect,并将第二个设置为true。

所以而不是

  server.transfer(url);
你应该

  Response.Redirect(url, true);

这会导致当前请求中止并强制立即重定向。

答案 1 :(得分:0)

描述

您无法更改当前请求的Url,因为它已在运行。

我想你想做一个重定向。

  

Redirect方法使浏览器将客户端重定向到其他URL。

示例

Response.Redirect("<theNewUrl>");

更新

如果您想在不进行请求的情况下更改浏览器地址栏中的URL,请阅读:

Can I change the URL string in the address bar using javascript

更多信息

答案 2 :(得分:0)

Server.Transfer()只是更改您发回的内容。

Response.Redirect()是告诉浏览器转到新页面所需的内容

您无法更改请求的网址 - 这没有任何意义,网址是您的客户端(浏览器)所要求的。

答案 3 :(得分:0)

不,您不能像这样更改浏览器中的URL。如果你能够做到这一点,这将是一个相当大的安全漏洞。 http://EvilDomain.com能够无缝地伪装成http://YourOnlineBank.com而且没有人会更聪明。