當我想要一個特定的菜單鏈接是活躍在給定的頁面,我用剃刀在這種方法:更好的辦法讓MVC 3剃鬚刀活動頁面鏈接
在主佈局我有這些檢查:
var active = ViewBag.Active;
const string ACTIVE_CLASS = "current";
if (active == "home")
{
ViewBag.ActiveHome = ACTIVE_CLASS;
}
if (active == "products")
{
ViewBag.ActiveProducts = ACTIVE_CLASS;
}
等
在主佈局HTML菜單:
<ul>
<li class="@ViewBag.ActiveHome"><a href="/">Home</a></li>
<li class="@ViewBag.ActiveProducts"><a href="@Url.Action("index", "products")">Products</a></li>
</ul>
在s pecifying到在不同的視圖中使用該佈局頁:
@{
ViewBag.Active = "home";
Layout = "~/Views/Shared/_Layout.cshtml";
}
是否有更好的方法來sepcify活動鏈接,比我目前使用的呢?
看起來像那些MVC HTML幫手是一個好主意,我可能會更多地考慮這一點。謝謝,像魅力一樣工作。 – Jens 2011-06-12 16:34:52
不錯!我想這樣做,但無法弄清楚如何解決在HTML幫助器中的活動控制器和動作。 – 2011-06-28 20:58:55
這完美的作品!謝謝Darin! – 2012-04-09 15:08:49