ASP.NETMVC3でaspxメニュー機能を使用する方法。メニュー項目をクリックすると、グリッドビューが表示されます。
2 に答える
ASP.NET MVC には、ASP.NET WebForms にあるようなサーバー コントロールはありません。純粋な HTML コードを手作業で書くことがすべてです。( Webforms のすべてのサーバー コントロールも HTML を生成し、ブラウザーにレンダリングします)
あなたができることは、メニュー項目にタグを付けることです。次にクリックすると、表形式で表示するすべてのデータをロードする別のアクション メソッドを呼び出すことができます。これらのメニューがすべてのページにある場合は、マスター ページのように機能する _layout.cshtml 内にそれらを保持できます。
ページをリロードせずにテーブル (UI) にデータをロードする場合は、jQuery ajax を使用して実行できます。
メニューにこのようなマークアップがあると仮定すると、以下のコードは、jQuery ロード関数を使用してアクション メソッドから応答をロードします。
//Don't forget to include jQuery library
<ul>
<li>@Html.ActionLink("Users","List","Users",null,new {@class="ajaXMenu"})</li>
<li>@Html.ActionLink("Jobs","List","Jobs",null,new {@class="ajaXMenu"})</li>
</ul>
<div id="contentDiv"></div>
<script type="text/javascript>
$(function(){
$("a.ajaXMenu").click(function(e){
e.preventDefault();
$("#contentDiv").load($(this).attr("href"));
});
});
</script>
最初に、MVC のサイトマップのようなものを調べることをお勧めします。これには、非常に優れたオープン ソース オプションがあります: https://github.com/maartenba/MvcSiteMapProvider
次に、実際のメニューが必要になります。MVC メニュー コントロールがないため、自分で作成するか、他のユーザーのものを使用する必要があります。Twitter ブートストラップには、かなり優れたナビゲーション メニューがあります: http://twitter.github.com/bootstrap/components.html#navbar
さらに、テレリックにも使用できるメニューがありますが、これにはライセンスが必要です: http ://demos.kendoui.com/web/menu/index.html