"アクティブ/カレント"クラスをマスターページのメニュー項目に割り当てるための適切な解決策を見つけることを試みています。このクライアントとサーバー側のどちらを行うかについては、行が中央に分割されています。アクティブなメニュー項目 - asp.net mvc3マスターページ
真実私はJavaScriptとMVCの両方に新しいので、私は意見がありません。私はこれを "最もクリーン"かつ最も適切な方法で行うことを好むでしょう。
<li>アイテムに「アクティブ」クラスを割り当てるための次のjQueryコードがあります...唯一の問題は、「インデックス」またはデフォルトのビューメニューアイテムが常にアクティブクラスに割り当てられることです。他のメニューリンクの部分文字列です:
(default) index = localhost/
link 1 = localhost/home/link1
link 2 = localhost/home/link1
$(function() {
var str = location.href.toLowerCase();
$('#nav ul li a').each(function() {
if (str.indexOf(this.href.toLowerCase()) > -1) {
$(this).parent().attr("class","active"); //hightlight parent tab
}
});
これを行うには良い方法がありますか?誰かが少なくとも私はクライアント側のバージョンを弾丸になるのに役立つだろうか?したがって、 "インデックス"またはデフォルトのリンクは常に "アクティブ"ですか?インデックスメソッドに偽の拡張を割り当てる方法はありますか?ベースURLの代わりにlocalhost/home/dashboard
となるように、すべてのリンクの部分文字列ではないでしょうか?
真実に、私はこのサーバーサイドを行う方法を実際には追いつかないので、jQueryを使ってクライアントサイドをやろうとしているのです。
注目すべき価値htmlHelper.ActionLink()には "using System.Web.Mvc.Html;"が必要です – 4imble
素晴らしい作品+1 – 4imble
MVC3でRazorを使用する場合は、ビューに@を追加するだけで、これを行うことができます。 –
Duncan