Khi bạn tạo một dự án MVC mới nó tạo ra một Site.Master với đánh dấu sau:ASP.net MVC - Navigation và làm nổi bật sự liên kết "hiện tại"
<div id="menucontainer">
<ul id="menu">
<li><%: Html.ActionLink("Home", "Index", "Home")%></li>
<li><%: Html.ActionLink("About", "About", "Home")%></li>
</ul>
</div>
Tôi muốn đặt mã ở đây mà sẽ đánh dấu liên kết hiện tại nếu tôi ở trên trang đó.
Nếu tôi thêm liên kết khác như:
<li><%: Html.ActionLink("Products", "Index", "Products")%></li>
tôi muốn liên kết sản phẩm để chủ động (sử dụng một lớp css như .active) nếu tôi về bất kỳ hành động trong bộ điều khiển sản phẩm.
Liên kết Giới thiệu phải hoạt động nếu tôi đang ở trên HomeController Giới thiệu về hành động. Liên kết Trang chủ nên hoạt động nếu tôi đang trên hành động Index của HomeController.
Cách tốt nhất để làm điều này trong MVC là gì?
điều này ngừng hoạt động khi bạn sử dụng RenderAction :( –
Lưu ý: ActionLink thực sự là một phương pháp tiện ích mở rộng, đảm bảo bao gồm việc sử dụng System.Web.Mvc.Html; trong tệp mã của bạn, nếu không Visual Studio sẽ không thể tìm thấy nó. – Peter
Sử dụng gói nuget gói «JetBrains.Annotations' để đánh dấu Bộ điều khiển và Hành động trong chế độ xem Dao cạo. '[AspMvcController]' và '[AspMvcAction]'. –