c#重写url参数
我有一个简单的任务,没有一个简单的解决方案。 我在浏览器中有一个参数需要更改或重写 例如www.contoso.com/countries.aspx?country=UK 我所需要的只是重写参数而不检查url,这样它可能会显示为: www.contoso.com/countries.aspx?country=法国 我试过那样的东西,但没有乐趣c#重写url参数,c#,asp.net,url-rewriting,C#,Asp.net,Url Rewriting,我有一个简单的任务,没有一个简单的解决方案。 我在浏览器中有一个参数需要更改或重写 例如www.contoso.com/countries.aspx?country=UK 我所需要的只是重写参数而不检查url,这样它可能会显示为: www.contoso.com/countries.aspx?country=法国 我试过那样的东西,但没有乐趣 string parameter2 = Request.QueryString["country"]; Context.RewritePath(param
string parameter2 = Request.QueryString["country"];
Context.RewritePath(parameter2.Replace("?country=", "France"));
您不能将整个URL读入一个字符串,在“?”上拆分它,然后将新的位添加到字符串的第一部分吗 大概是这样的:
var url = Request.QueryString;
var newUrl = url.split('?');
url = newUrl[0] + "?country=France";
我不知道这是否行得通,这只是一个想法,你可以这样做:
var url = Request.QueryString;
var newUrl = url.split('?');
url = newUrl[0] + "?country=France";
var url=“www.contoso.com/countries.aspx?country={0}”代码>
var country=“英国”代码>
url=String.Format(url,国家)代码>
或者,您可以执行以下操作:
var url=Request.url.AbsolutePath代码>
var country=Request.QueryString[“country”]代码>
url=url.Replace(国家,“英国”)代码>
然后:
Response.Redirect(url)代码>如果要替换完整的查询字符串,请使用
newVal = string.LastIndexOf("?");
然后
URL.Replace(oldVal, newVal);
或者,如果您在querystring中只有一个参数,并且只想替换它的值,请使用
newVal = string.LastIndexOf("=");
URL.Replace(oldVal, newVal);
查看详细的响应以找到问题的解决方案。不必要。为什么要这样做?他在重写方面有问题,获取参数不应该是一个问题…你什么时候尝试这样做?在按钮或超链接之类的事件之后,代码应该只更改该参数而不更改任何其他内容。谢谢,url已经是www.contoso.com/countries.aspx?country=UK,我需要重新发布参数。啊哈,所以这只有在你事先知道URL的情况下才会起作用,我猜你事先不知道。它工作得非常好,我对你的示例做了一些调整,response.redirect让我了解了如何重新发布字符串,谢谢