c#rewrite url参数

时间:2012-06-13 10:14:16

标签: c# asp.net url-rewriting

我有一个简单的任务,没有简单的解决方案。 我在浏览器中有一个需要更改或重写的参数

例如www.contoso.com/countries.aspx?country=UK

我需要的是重写参数而不检查url,因此它可能显示为:

www.contoso.com/countries.aspx?country=France

我尝试过类似的东西,但没有快乐

string parameter2 = Request.QueryString["country"];
Context.RewritePath(parameter2.Replace("?country=", "France"));

4 个答案:

答案 0 :(得分:1)

你可以这样做:

var url = "www.contoso.com/countries.aspx?country={0}";

var country = "UK";

url = String.Format(url, country);

或者你可以这样做:

var url = Request.Url.AbsolutePath;

var country = Request.QueryString["country"];

url = url.Replace(country, "UK");

然后:

Response.Redirect(url);

答案 1 :(得分:0)

你能不把整个网址读成一个字符串,把它拆分成'?'然后将新位添加到字符串的第一部分?

这样的事情:

    var url = Request.QueryString;
    var newUrl = url.split('?');
    url = newUrl[0] + "?country=France";

我不知道这是否有用,只是一个想法

答案 2 :(得分:0)

如果要替换完整的查询字符串,请使用

newVal = string.LastIndexOf("?");

然后

URL.Replace(oldVal, newVal);

或者,如果查询字符串中只有一个参数,并且只想替换它的值,请使用

newVal = string.LastIndexOf("=");
URL.Replace(oldVal, newVal);

答案 3 :(得分:0)

查看this详细解决方案以解决您的问题。