asp.net mvc 3プロジェクトの標準タブの代わりにjquery uiタブを使用してナビゲーションを実装することは可能ですか? このサイトと非常によく似たタブ (質問、タグ、ユーザー...)。それを行う例はありますか?
これが私の実装です。
1) Razor ビュー エンジンを使用して標準の MVC 3 プロジェクトを作成しました。レイアウトページのメニューはこんな感じ。
<div id="menucontainer">
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home", null, new { title="Index"})</li>
<li>@Html.ActionLink("About", "About", "Home", null, new { title="About"})</li>
</ul>
</div>
2) これが私の HomeController アクションです。
public PartialViewResult Index()
{
ViewBag.Message = "Welcome to ASP.NET MVC!";
return PartialView();
}
public PartialViewResult About()
{
return PartialView();
}
public ViewResult Default()
{
return View();
}
3) また、Global.asax.cs を変更して、既定のページを表示するようにしました。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Default", id = UrlParameter.Optional } // Parameter defaults
);
}
4) そして最後に、タブの動作を適用するスクリプトを次に示します。
$(document).ready(function() {
$('#menucontainer').tabs();
$("menucontainer").bind('tabsselect',
function(event, ui) {
document.title = ui.tab.title;
}
);});
したがって、jQuery ui は各タブの追加の div をページに追加するだけで (この場合は 2 つ)、その後に div#main が追加されます。ユーザーがメニューバーの他のタブに移動した後、div#main のコンテンツを動的に置き換えたいだけです。今、それはこのように見えます。
<div id="menucontainer">
...
<div id="Index">
Content of Index tab.
</div>
<div id="About">
Content of About tab.
</div>
</div>
<div id="main">
Content of the page.
</div>