4
テスト用のASP.NET MVCアプリケーションに部分的なビューがあります。このビューは、アプリケーションメニューボタンを表示します。ASP.NET MVCの部分ビュー内の現在のビューの名前を確認
現在アクティブなページのボタンの色を変更したいと思います。現在、私のようなものが書かれている:
<ul id="menu">
<% var activeClass = (string)(ViewData["currentPage"]) == "Home" ? "activeMenuButton" : ""; %>
<li><%= Html.ActionLink ("Home", "Index", "Home", new { @class = activeClass })%></li>
<% activeClass = (string)(ViewData["currentPage"]) == "About" ? "activeMenuButton" : ""; %>
<li><%= Html.ActionLink ("About", "About", "Home", new { @class = activeClass })%></li>
</ul>
をし、コントローラのアクションのビューデータを設定します。
//in home action
ViewData["currentPage"] = "Home";
//in About action
ViewData["currentPage"] = "About";
これは動作しますが、私はすべてのコントローラのアクションを変更する必要があります。自動的にビューを検出し、部分的にビューコードを変更して色を変更する方法がありますか?
これは私をたくさん助けました。ありがとう。 fyiとして、私はこの情報を得るためにこの邪悪な部分を使っていました:String currentView =((WebFormView)ViewContext.View).ViewPath;これに関する私の問題は、理由が不明なため、1つのViewControlでは動作しますが、別のViewControlでは動作しないことと、両方が同じページにロードされることです。それはおそらく私の最後にID10Tのエラーですが、問題の理由はすぐに明らかではありません。再度、感謝します。 – jason