在我的MVC應用程序中,我不希望佈局頁面在每次選擇視圖時重新加載。如果可以使用ajax加載視圖以保持內容快捷並允許我在移動時保留某些被刪除的界面狀態,那將是非常好的。如何使用AJAX從佈局請求視圖?
我最初的做法是向_Layout.cshtml添加一些ajax,然後當他請求查看時,將該請求傳遞給將要抓取該頁面的控制器方法。我最終做的是再次返回整個視圖。
這是我到目前爲止的代碼,我是在正確的軌道上,還是完全錯誤?
佈局阿賈克斯腳本
<script>
$(function() {
var content = document.getElementById('content');
//When a user selects a link, pass the data attribute and
//use it to construct the url
$('#sidebar a').on("click", function() {
var page = $(this).data('page');
console.log("Data Attrib : " + page);
$.ajax({
type: 'GET',
url: '@Url.Content("~/Home/")' + page,
success: function (data) {
$('#content').html(data);
console.log("Success");
},
error: function (xhr, ajaxOptions, thrownError) {
console.log("Error: " + thrownError);
}
})
})
});
</script>
正如我所說,這類作品,但因爲它返回整個頁到包括佈局內容方面它並不是完美的,理想的我只想核心查看數據。
把這個在您不希望包括佈局視圖的頂部:'@ { Layout = null;}' – Ric
另一種選擇是使用部分視圖並檢索那些 - 他們不mak e使用佈局模板並設計爲插入到另一個頁面內。 – ADyson