2

ここや他のサイトで以前の質問をいくつか読んだことがありますが、ASP.net と MVC は初めてなので、提示された情報を理解するのに少し苦労しています。

ビューレイヤーを介して現在のページの現在の URL を取得し、その情報を使用して、特定の css を許可する li タグに ID を適用するように指示されました。左側のナビゲーション バーをすべての単一ページに埋め込む (以前の共同作業で行った) から、必要なすべてのページで呼び出す部分ビューにリストを配置するように移動しました。サイトのスタイリング要件には、左側のナビゲーションに特定のハイライトがあり、ユーザーが現在いるページのタグがあります。

使用を含む、私が読んだ例のいくつか:

<%= Request.Url.PathAndQuery %>

Request.Url.ToString() or Request.Url.AbsoluteUri

var request = HttpContext.Current.Request

しかし、それらのすべてが View レイヤーで使用できるわけではないことはわかっています。最善のアプローチは何ですか?まだ見つけられていないチュートリアルで、誰もが推奨できるものはありますか?

4

2 に答える 2

10

私の意見では、これにURLを使用するのはおそらく最善のアイデアではありません。

代わりに、これを実現するための迅速で簡単な方法ViewContext.RouteDataは、現在の要求のコントローラーとアクションの両方の値を含むを使用することです。ビューレイヤーから簡単にアクセスできます。

ViewContext.RouteData.Values["Controller"].ToString()
ViewContext.RouteData.Values["Action"].ToString()

だからあなたの見解では、あなたは次のようなことをすることができます

<ul class="nav">
    <li class="@(ViewContext.RouteData.Values["Controller"].ToString() == "ControllerName" ? "active" : "")"><a href="#">Foo</a></li>
</ul>

さらにプッシュしてより美しくすることもできますが、基本的な考え方は理解できます。

于 2013-01-29T20:00:06.483 に答える