Я хочу иметь возможность URL-адреса текущей страницы и извлекать от конца до последнего появления /
Так, например, если мой URL-адрес http://myintranet/guidelines/Home/Pages/mymed.aspx
: http://myintranet/guidelines/Home/Pages/mymed.aspx
Я хочу извлечь mymed
.
У меня это до сих пор:
string strEntity = HttpContext.Current.Request.Url.AbsolutePath;
Label2.Text = strEntity;
который отображает:
/guidelines/Home/Pages/mymed.aspx
Я попытался использовать Split("\\").Last();
но это не сработало для него и не может назначить string [] для строки...
Вы можете использовать метод GetFileNameWithoutExtension
из класса System.IO.Path
:
var uri = HttpContext.Current.Request.Url;
string fileName = Path.GetFileNameWithoutExtension(uri.AbsolutePath);
Uri uri = new Uri("http://myintranet/guidelines/Home/Pages/mymed.aspx");
var segments = uri.Segments;
//do something with the array of segments
Изменение: как указано, вам не нужно создавать Uri, поскольку у вас уже есть один:
var lastPart = HttpContext.Current.Request.Url.Segments.Last();
uri.Segments.Last();
Uri uri = new Uri("http://myintranet/guidelines/Home/Pages/mymed.aspx");
var segments = uri.Segments;
var last = segments.Last(); //to get the last
var mymed = last.Split(".")[0]; //to separate the name from the extention
Вы можете попробовать что-то вроде этого:
var ub = new UriBuilder("http://myintranet/guidelines/Home/Pages/mymed.aspx");
NameValueCollection nvc = HttpUtility.ParseQueryString(ub.Query);
string page = nvc[nvc.Count - 1];
System.Uri
?