ASP.NET MVC 3を使用しているときに、ナビゲーションの現在のページにCSSクラスを追加することはどうすればできますか?あなたは私がそれに適用される「現在」のCSSクラスを有する第1と私のナビゲーションで4つのリンクを持って見ることができるように、私はなりたいASP.NET MVC - ナビゲーションでの現在のページの強調表示
<p>@Html.ActionLink("Product Search", "Index", new { controller = "Home" }, new { @class = "current" })
| @Html.ActionLink("Orders", "Index", new { controller = "Orders" })
| @Html.ActionLink("My Account", "MyAccount", new { controller = "Account" })
| @Html.ActionLink("Logout", "LogOff", new { controller = "Account" })</p>
:ここに私のナビゲーションは、私の_Layout.cshtmlファイルでありますユーザーがどのページにいるかに応じて、ナビゲーション内のさまざまなリンクにこのクラスを追加/削除することができます。これは可能ですか?あなたが行うことができ、あなたのHTMLであなたのclass属性に続いて、この
@{
var currentController = ViewContext.RouteData.Values["controller"] as string ?? "Home";
var currentAction = ViewContext.RouteData.Values["action"] as string ?? "Index";
var currentPage = (currentController + "-" + currentAction).ToLower();
}
@Html.ActionLink("Product Search", "Index", "Home", null,
new { @class = currentPage == "home-index" ? "current" : "" })
@Html.ActionLink("MyAccount", "MyAccount", "Account", null,
new { @class = currentPage == "account-myaccount" ? "current" : "" })
これが最良の方法だと感じているので、答えがマークされています。きれいなかみそりの表示とコードの再利用性 – CallumVass
拡張子 'HtmlHelper.ActionLink()'に対して、次のように[LinkExtensions](https://msdn.microsoft.com/en-us/library/system.web.mvc.html.linkextensions.aspx)の名前空間を追加します。 'using System.Web.Mvc.Html;' – Mike