我正在構建一個MVC 4,淘汰賽,web api,bootstrap和其他的SPA。我想知道是否有更好的解決辦法還是我做錯了與以下情形:MVC 4 - 如何使用Ajax.ActionLink渲染剖視圖?
MainLayout爲僅機身:
<body>
<div class="container-fluid">
<div class="row-fluid">
top Menu Here
</div>
<div class="row-fluid">
<div class="span2">
Left Menu Here with links like:
@Ajax.ActionLink("Management and Configuration", "Index", "Environments", new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "ContentPanel" })</li>
<div id="footer">
<p>© Copyright 2012</p>
</div>
</div>
<div class="span10">
<section>
<div id="alerts"></div>
<div id="ContentPanel">
@this.RenderBody()
</div>
</section>
</div>
</div>
</div>
@Scripts.Render("~/js")
@Scripts.Render("~/js/jqueryui")
@Scripts.Render("~/js/jqueryval")
@Scripts.Render("~/js/knockout")
@Scripts.Render("~/js/modernizr")
@Scripts.Render("~/js/app")
@Scripts.Render("~/js/widgets")
@RenderSection("Scripts", required: false)
</body>
月1日 - 我有一個邊導航菜單自舉和當選擇一個鏈接類更改爲活動,所以背景會不同,所以我使用jquery來實現這一部分。
$(document).ready(function() {
$('#mainMenu > li').click(function (e) {
//e.preventDefault();
$('#mainMenu> li').removeClass('active');
$(this).addClass('active');
});
//BTW i want some slide effect for the views incoming,
//correct me if this is not the correct way to do it
$("#ContentPanel").effect("slide", {}, 700);});
2日 - 與控制器A查看代碼:
控制器:
public ActionResult Index()
{
return View();
}
查看:
@{
ViewBag.Title = "Environments";
}
@section Scripts {
Script Templates Here
Scripts for Knockout Viewmodel and Actions Here (i will move to another file)
}
<div class="span3" data-bind="block : $root.isLoading">
All the HTML Content Here
</div>
3TH - 我創造了Ajax的新佈局要求,所以我可以保留每個View的腳本部分。
新佈局:
@RenderBody()
@RenderSection("scripts", required: false)
4日 - 我改變了_ViewStart文件管理佈局:
_ViewStart文件:
@{
Layout = Request.IsAjaxRequest() ? "~/Views/Shared/_Layout.cshtml" : "~/Views/Shared/_BootstrapLayout.cshtml";
}
最後,一切工作正常,但就像我說的,有沒有更好的解決方案?或者我使用不好的資源?
最好的問候,
,如果你不能夠得到,請讓我知道。我想對此進行更多的澄清。 –