2013-04-18 3 views
2

У меня есть панель навигации, которая у меня внутри bulletedList. Мое намерение заключается в том, чтобы иметь возможность изменять классы, основываясь на том, где находится текущая страница на сайте. У меня есть код, который может найти текущее имя файла, но Я хочу, чтобы иметь возможность получить имя папки, в которой находится текущий файл. Как мне это сделать?Получить имя папки для текущей страницы ASP.NET C#

protected void Page_Load(object sender, EventArgs e) 
{ 
    string[] file = Request.CurrentExecutionFilePath.Split('/'); 
    string fileName = file[file.Length-1]; 

    if (fileName == "Dashboard.aspx") 
    { 
     MainNavList.Items.FindByText("Dashboard").Attributes.Add("class", "active"); 
    } 
} 
+2

строка имя_файла = файл [file.length - 2]; даст вам папку перед именем файла? Не уверен, что произойдет, если вы сделаете это для страницы в корне. Мог бы проверить, если file.Length> 1 – Yeronimo

+0

** NICE! ** Спасибо! Ваше решение отлично поработало! – user2059225

ответ

1

Thanks Yeronimo! Все, что я сделал, это изменить -1 до -2 и ввести имя моей папки под названием «Панель мониторинга». Это то, что работает для меня:

protected void Page_Load(object sender, EventArgs e) 
{ 
    string[] file = Request.CurrentExecutionFilePath.Split('/'); 
    string fileName = file[file.Length-2]; 

    if (fileName == "Dashboard") 
    { 
     MainNavList.Items.FindByText("Dashboard").Attributes.Add("class", "active"); 
    } 

}

2

С HttpContext.Current.Request.Url.AbsolutePath вы можете получить текущий URL-адрес.

В качестве примера, если страница, которую я посещал был:

http://www.website.com/Directory1/Directory2/Page.aspx

Тогда бы вывести строку которую вы могли бы использовать split():

/Directory1/Directory2/Page.aspx

0

Попробуйте использовать Request.MapPath или Request.PhysicalPath к получить местоположение файла ASPX на диске.

Смежные вопросы