Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从URL中删除其他斜杠_C#_Asp.net_Url_Slash - Fatal编程技术网

C# 从URL中删除其他斜杠

C# 从URL中删除其他斜杠,c#,asp.net,url,slash,C#,Asp.net,Url,Slash,在ASP.Net中,可以通过如下URL从几乎相同的页面获取相同的内容 localhost:9000/Index.aspx和localhost:9000//Index.aspx甚至localhost:9000///Index.aspx 但这对我来说并不好 在用户转到某个页面之前,我如何删除这些额外的斜杠?在什么地方 删除它们,例如: url = url.Replace("///", "/").Replace("//", "/"); 这个解决方案不是很漂亮,但非常简单 do { url

ASP.Net
中,可以通过如下URL从几乎相同的页面获取相同的内容
localhost:9000/Index.aspx
localhost:9000//Index.aspx
甚至
localhost:9000///Index.aspx

但这对我来说并不好


在用户转到某个页面之前,我如何删除这些额外的斜杠?在什么地方

删除它们,例如:

 url = url.Replace("///", "/").Replace("//", "/");

这个解决方案不是很漂亮,但非常简单

do
{
    url = url.Replace("//", "/");
}
while(url.Contains("//"));
这将适用于url中的许多斜杠,但运行时不是很好。

使用以下方法:

url  = Regex.Replace(url  , @"/+", @"/");
它将支持n次

请参见

您需要指定一个基本Uri和一个相对路径来获得规范化的行为


Regex.Replace(“http://localhost:3000///////asdasd/as///asdasda///asdasdasd//“,@“/+”,@“/”。替换(“:/”,“:/”)

在服务器端或客户端删除?@RoyiNamir,我认为从服务器删除会更好。如果您的url包含http:\\部分,您将无法获得所有当前答案。不要只是替换,小心地构建url。如果url字符串包含类似“”的内容,这将不起作用。它将从“https://”中删除“//”,url将不起作用。您在该屏幕截图中使用了什么工具?
Uri baseUri = new Uri("http://www.contoso.com");
Uri myUri = new Uri(baseUri, "catalog/shownew.htm");
Console.WriteLine(myUri.ToString());