0

私はasp.net MVC4が初めてです。

Web サイトにナビゲーション バーを実装しています。

ナビゲーション バーで現在のページをクリックしたときに更新されないようにしたいと思います。

UPDATE ナビゲーションバーにRazorを使用しています:

<ul>

@Html.ActionLink("FEATURE_1_URL","FEATURE_1_URL","Home")
@Html.ActionLink("FEATURE_2_URL","FEATURE_2_URL","Home")
@Html.ActionLink("FEATURE_4_URL","FEATURE_4_URL","Home")
</ul>

どうすればそれを達成できますか?

4

3 に答える 3

1

jqueryを使う

$('.btnCurrent').on('click', function(e){
    //Determine page using hidden field or something like that
    if(page == currentPage){
        e.preventDefault();
    }
});
于 2013-10-06T20:09:53.560 に答える
0

基本的に、私がやったことは、@helper を作成してメニュー項目を作成することでした。現在アクティブなメニュー項目を何らかの方法でモデルに渡し、その項目を作成するときに href を # に設定するだけです。これは、javascript/jquery でも実行できます。

これが私の @helper メソッドでした:

@helper MenuItemDesigner(string MenuItemName, bool hasAccess, string view, string controller, string areaName, MenuItems.Name menuItem, string       glyphicon, string badge)
 {
 if (hasAccess)
 {
     <a 
     @if (Model.ActiveMenuItem == menuItem)
     {
         <text>id = "@menuItem" href="#"</text>
        @Html.Raw("class= 'list-group-item active'");
     }
     else
     {
         <text>id = "@menuItem" href="@Url.Action(view, controller, new { Area = areaName })"</text>
        @Html.Raw("class= 'list-group-item'");
     }
     ><span class="@glyphicon"></span> @MenuItemName <span class="badge" data-val="0" style="display:none">@badge</span>
     </a>
 }
}

これがすべてのシナリオに当てはまるわけではありませんが、参考として使用できます。重要な部分は、現在アクティブなメニュー項目を知り、その href="#" を設定することですが、それを行う必要があります。

于 2017-06-01T18:03:35.507 に答える