从斜线向前移除部分Uri

时间:2017-09-28 09:37:18

标签: c# razor uri

我正在使用字符串中的Uri构建动态hreflang标记以提取文化,例如,有时它可能 ru / about-us / 其他时候它可能 ru / 但我需要的是从斜线中移除部分并保持文化部分,例如 ru 。我一直试图解决这个问题几个小时,所以有人可以指出我正确的方向,谢谢你。

  Uri hrefLang = new Uri(correctUrl, UriKind.Absolute);

 @Html.Raw(@"<link rel=""alternate"" href=""" + @correctUrl + @""" hreflang=""" + @hrefLang.LocalPath.Substring(1) + @"""/>" + Environment.NewLine);

1 个答案:

答案 0 :(得分:0)

如果我理解正确,new Uri(correctUrl, UriKind.Absolute)会提供完整的URI,并且您将始终拥有一个以/{culture}/开头的路径,并且您需要一个完整的URI,其中只有该路径的一部分作为整个路径

如果是,那么:

Uri fullUri = new Uri(correctUrl, UriKind.Absolute);
Uri hrefLang = new Uri(fullUri, fullUri.AbsolutePath.Substring(0, fullUri.AbsolutePath.IndexOf('/', 1) + 1));

会将hrefLang设置为这样的URI。