MVC tworzenie menu i odczyt z URL

0

Witajcie

tworzę menu jak poniżej

<ul>
     <li>@Html.ActionLink("Users", "UsersList", "Account")</li>
     <li>@Html.ActionLink("Properties", "PropertiesList", "Property")</li>
     <li>@Html.ActionLink("Orders", "OrdersList", "Order")</li>
</ul> 

statyczne w pliku _Layout.chtml. Chciałbym uzyskać następujący efekty:
a. zaznaczenie poprzez odpowiedni kolor linka w który wszedłem i "aktualnie przebywam"
b. jeśli ręcznie wpiszę jakiś adres w przeglądarkę to odpowiedni link z menu zmieni się jak wyżej.

I tak, w necie znalazłem rozwiązania z częściowym widokiem, które owszem działają ale tylko dla pkt. a; albo źle szukałem.
Stworzyłem "własne rozwiązanie", które działa dla pkt a i b, ale kod nie bardzo mi się widzi, w pliku _Layout.cshtml odczytuję powiedzmy controller z adresu URL

@if ((string)ViewContext.RouteData.Values["Controller"] == "Account")
{
   <li>@Html.ActionLink("Users", "UsersList", "Account", null, new { @style = "color: orange;" })</li>
}
else
{
   <li>@Html.ActionLink("Users", "UsersList", "Account")</li>
}

Działa tak jak chcę ale ... dwa razy wypisuje niby to samo i dodaję styl. Czy da się to jakoś prościej zrobić?
Dzięki za ewentualne uwagi.

1

Częściowy widok z własnym ViewModelem, który posiada listę odnośników i obecnie kliknięty link.

0

@_Mateusz_ dobry pomysł na menu z bazy

wymyśliłem takie coś

 
<li>@Html.ActionLink("Users", "UsersList", "Account", null, new { @class =  ((string)ViewContext.RouteData.Values["Controller"] == "Account") ? "linked" : "" })</li>

Prościej i też działa.

1 użytkowników online, w tym zalogowanych: 0, gości: 1