これは古い質問のようなものかもしれませんが、Webで説明されている他のものとは異なるため、私はいくつかのタブをブートストラップに持っていますが、これはヒットするアクションに応じてアクティブに設定する必要があります。サブタブもあります。サブタブも同様にヒットするアクションに応じてアクティブに設定する必要があります。サブタブがアクティブにされているときだから、親タブがあまりにもアクティブにする必要がありASP.NET MVCで起動しているブートストラップタブを設定する
:ここ
は、それがどのように見えるかの画像です。
だから、私は、各アクションのPAGEIDを保存し、私がアクティブかどうかに設定することができますビューにPAGEIDに応じて、新しい属性を作成するために考えた:ここ
は属性であります:ここでは
public class YcoPageId : Attribute
{
public YcoPageId(int pageId)
{
PageId = pageId;
}
public int PageId { get; }
}
はアクションです:
[YcoPageId(1)]
public ActionResult Admin()
{
return View();
}
ビューでは、タブとサブタブをアクティブにするかどうかを確認するための拡張メソッドを作成したいと思います!ここで
は私のコードです:
public static bool IsActive(this HtmlHelper htmlHelper, params int[] ids)
{
var viewContext = htmlHelper.ViewContext;
var action = viewContext....
//How to get the YcoPageId attribute from here and see the Id
//Here i will test if ids contain id but dont know how to get it...
}
各ページのIDを追加することは悪い考えだと思うなら、私はそれをするための識別子のようになりますので、私の場合のために、私は他の目的のために、このIDを使用すると思います特定のアクション...
私の質問は、どのように私の拡張メソッドの現在のアクションのための属性YcoPageId
を得ることができますか?
ビューは次のようになります。この問題を解決するためにどのように任意のより良いアイデアがある
<li class="@(Html.IsActive(1, 4, 5... etc)? "active" : "")">
<a href="@url">
<div class="row text-center">
<div class="col-md-12">
<i class="fa @fontAwesomeIcon fa-4x" aria-hidden="true"></i>
<br/>@menuName
</div>
</div>
</a>
</li>
場合は先に行くしてください!
ありがとうございます!
これらのタブの関係はどうなっていますか?上部のタブはコントローラに関連し、サブタブは選択されたコントローラのアクションメソッドに関連していますか? –
いいえ、私はいくつかのASP.NET WebformsコードをASP.MVCに移行しているので、私は関係の種類を作成することができるので、彼らは関係を持っていません。 –
@StephenMueckeしかし、私はそれを考えています親タブ用のコントローラを作るのは意味がありますが、これはアクション名のサブタブをテストする一方で、コントローラ名の親タブは、説明しようとしているものですか? –