Я некоторое время боролся с этим предметом и задавался вопросом, почему решение vanilla ASP.NET не поддерживает то, что нам нужно. После некоторых экспериментов я предложил это исправление, которое включает изменение двух файлов в ванильном решении:
1) измените файл Styles / Site.css , чтобы добавить определение и изменить другое.
а) добавьте это в раздел меню:
div.menu ul li .selected
{
background-color: #bfcbd6;
color: #465c71;
text-decoration: none;
}
b) Удалите директиву посещения, изменив эту строку:
div.menu ul li a, div.menu ul li a:visited
к этому:
div.menu ul li a
2) Появится выделенный пункт меню «выбрано». Однако выбранный элемент очищается каким-либо образом в последовательности обратного вызова страницы. Чтобы обойти эту проблему, я сделал это изменение в файле Site.Master.cs , в основном, чтобы выбрать вкладку, которая содержит URL-адрес, который мы ищем:
private void HighlightSelectedMenuItem()
{
string MyURL = Request.Url.AbsoluteUri;
foreach (MenuItem mi in NavigationMenu.Items)
{
string mytest = System.IO.Path.GetFileName(mi.NavigateUrl);
if (MyURL.Contains(mytest))
{
mi.Selected = true;
}
}
}
Теперь просто добавьте этот метод в ваш метод Page_Load, и все готово.