我希望能够提取URL子目录的名称,并将其保存到ASP.NET C#中服务器端的字符串中。例如,假设我有一个如下所示的网址:
http://www.example.com/directory1/directory2/default.aspx
如何从URL获取值'directory2'?
答案 0 :(得分:12)
Uri类有一个名为segments的属性:
var uri = new Uri("http://www.example.com/directory1/directory2/default.aspx");
Request.Url.Segments[2]; //Index of directory2
答案 1 :(得分:2)
这是一个分类代码:
string url = (new Uri(Request.Url,".")).OriginalString
答案 2 :(得分:1)
我会使用.LastIndexOf(“/”)并从中向后工作。
答案 3 :(得分:1)
您可以使用System.Uri提取路径的片段。例如:
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var uri = new System.Uri("http://www.example.com/directory1/directory2/default.aspx");
}
}
然后是财产" uri.Segments"是一个字符串数组(string []),包含4个这样的段:[" /"," directory1 /"," directory2 /",&# 34; Default.aspx的"。]
答案 4 :(得分:0)
您可以使用split
类的string
方法将其拆分为/
如果要选择页面目录
,请尝试此操作string words = "http://www.example.com/directory1/directory2/default.aspx";
string[] split = words.Split(new Char[] { '/'});
string myDir=split[split.Length-2]; // Result will be directory2
以下是MSDN的示例。如何使用split
方法。
using System;
public class SplitTest
{
public static void Main()
{
string words = "This is a list of words, with: a bit of punctuation" +
"\tand a tab character.";
string [] split = words.Split(new Char [] {' ', ',', '.', ':', '\t' });
foreach (string s in split)
{
if (s.Trim() != "")
Console.WriteLine(s);
}
}
}
// The example displays the following output to the console:
// This
// is
// a
// list
// of
// words
// with
// a
// bit
// of
// punctuation
// and
// a
// tab
// character