3

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

例如 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

4 回答 4

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);

于 2012-06-13T10:28:24.727 回答
0

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

像这样的东西:

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

我不知道这是否可行,这只是一个想法

于 2012-06-13T10:19:01.837 回答
0

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

newVal = string.LastIndexOf("?");

进而

URL.Replace(oldVal, newVal);

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

newVal = string.LastIndexOf("=");
URL.Replace(oldVal, newVal);
于 2012-06-13T10:29:04.257 回答
0

查看详细回复以解决您的问题。

于 2012-06-13T11:01:20.233 回答