MVC
,JavaScript
またはBootstrap
についてはあまり知識がありません。しかし、ここで私は3つすべてに取り組んでいる何かについています。私はLayout
ページをBootstrap
を使ってスタイル付けされたナビゲーションバーで構成しました。アイデアはhereから取られました。下記のマークアップ。@ Url.Actionは、ナビゲーションバーでクリックしたときにルーティングされません。
<div id="innerTab">
<ul class="nav nav-pills">
<li class="active">
<a href="@Url.Action(" Index ", "Home ")" data-toggle="tab">Index</a>
</li>
<li>
<a href="@Url.Action(" About ", "Home ")" data-toggle="tab">About</a>
</li>
</ul>
<div class="tab-content clearfix">
<div class="tab-pane active">
@RenderBody()
</div>
</div>
</div>
これはLayout View
ですので、私はタブのコンテンツ領域内の他のビューからコンテンツをロードすることができるようにしたいです。そのため、私は@RenderBody()
を2回以上呼び出すことはできません。私は実際にdata-toggle
が正確に何をしているのかわかりませんが、About
をクリックすると何の影響もありませんでした。それから、JS
でクリックしたタブに手動でactive
クラスを設定しなければならないことに気づきました。これは私がやったことです。
$(".nav li").on("click", function() {
$(".nav li").removeClass("active");
$(this).tab('show');
})
これで、選択したタブがアクティブになりました。しかし、何らかの理由で、About
をクリックすると、About
ページには移動せず、Index
のままです。そのため、私はそれを以下のように@Html.ActionLink
に変更しなければなりませんでした。
@Html.ActionLink("About", "About", "Home")
これは正常にAbout
ページにナビゲートされました。ただし、About
タブは1秒間アクティブになり、すぐにIndex
タブに切り替わりますが、About
ページの内容が表示されます。以下のように。
思想この問題を解決するだろうdata-toggle
を追加します。だから私はhere与えられた答えに従った。
@Html.ActionLink("About", "About", "Home", new { data_toggle="tab"})
次に正方形に戻ります。私が選択したタブをハイライトするという事実を除いて、何もしません。私は迷っています!どこが間違っていますか?
最初にBootstrapのjavascriptとcssを削除してください。悪く見えますが、今のところそれを忘れてしまいます。ナビゲーションが期待するページを読み込みますか?次に[Bootstrap's nav](https://getbootstrap.com/docs/3.3/components/#nav)コンポーネントを読んでから、javascriptとcssを再インストールしてください。 navコンポーネントはカスタムスクリプトなしで動作するはずです。 – Jasen
@ジャセン除去ブートストラップは問題なくナビゲーションを可能にします!!だから、問題は私がブートストラップCSSを扱った方法でした。 – Akshatha