で私は_Layout.cshtmlでこのメニューがあります:アクションリンクの1つをクリックするとどのように動的に設定するスタイルのリスト項目で_Layout.cshtml
<td class="MenuStructure">
<ul id="menu">
<li>@Html.ActionLink("First Page", "Page1Action", "Main")</li>
<li>@Html.ActionLink("Second Page", "Page2Action", "Main")</li>
<li>@Html.ActionLink("Third Page", "Page3Action", "Second")</li>
</ul>
</td>
を、私は<のクラスを設定したいです"選択された"とそれ以外のクラスのクラスを含む "li>"要素を ""に追加します。
これは動作します:
<script type="text/javascript">
$(document).ready(function() {
var selMenu = '@ViewBag.SelectedMenu';
if (selMenu == "page1") {
$("#page1").attr('class', 'selected');
$("#page2").attr('class', '');
$("#page3").attr('class', '');
}
if (selMenu == "page2") {
$("#page1").attr('class', '');
$("#page2").attr('class', 'selected');
$("#page3").attr('class', '');
}
});
</script>
が、それはひどく醜いです。誰かが私にこれを行うよりエレガントな方法を示すことができますか?
私のli要素内の@ Html.ActionLinkがあればわからない(ポストバックが発生しますこれはMVC3の正しい用語です)、これはうまくいきますが、ページがリフレッシュされる前の短い瞬間に限り、 "選択された"クラスがなくなりました。 – KennyZ
@KennyZああ、はい、往復を考慮しなかった...私は更新する –
ありがとう!私はそのコードをチェックするともっと気分が良くなる! – KennyZ