0

ASP.NET MVC を使用してページを作成しています。今、私は問題に遭遇しました。

次のコードは、ナビゲーション リストから取得したものです。

        <li class="current start">
            <a href="/home">
                <i class="icon-home"></i>
                <span class="title">Dashboard</span>
                <span class="current"></span>
            </a>
        </li>
        <li class="has-sub">
            <a href="javascript:;">
                <i class="icon-bookmark-empty"></i>
                <span class="title">Leads</span>
                <span class="arrow"></span>
                <span class=""></span>
            </a>
            <ul class="sub">
                <li><a href="/lead?status=1">Inkorg</a></li>
                <li><a href="/lead?status=2">Utskick</a></li>
                <li><a href="/lead?status=3">Akriverade</a></li>
            </ul>
        </li>

おわかりのように、このナビゲーション リストは 2 つのレベルになる可能性があります。クリックしたアイテムのクラスを現在に設定し、投稿後にそれを記憶する必要があります。2 番目の例では、li 要素のサブ レベルとトップ レベルの両方でクラスを current に設定する必要があります。これを記憶するためにクッキーを使用できますか? または、これを解決する最善の方法は何ですか?

4

1 に答える 1

1

まず、HTMLにハードコーディングするのではなく、MVCルートを使用してURLを取得することをお勧めします。

@Url.Action("Lead", new { status = 1 })

または

@Url.RouteUrl("MyLeadRoute", new { status = 1 })

2番目のバージョンでは、アクション/コントローラーコンボの代わりに名前付きルートを使用できます。

次に、通常、次のようなパターンに従います。

@{ url = Url.Action("Lead", new { status = 1 }); }
<li@((Request.RawUrl == url) ? " class='current'" : "")><a href="@url">Some Link</a></li>

@{ string url; }注:コードの前半で定義する必要があります。

すべてのリンクをすすぎ、繰り返します。

于 2013-03-11T12:59:12.103 に答える