我有一個非常標準的MVC解決方案,包括_Layout.cshtml,Index.cshtml等。我試圖只在一次佈局中加載一些必需的捆綁包,這樣當我更改視圖時,我只會得到我需要的服務器,而不是我已經有(捆綁,佈局HTML等)。如何只加載_Layout.cshtml一次?
下面這篇文章:MVC 3: How to render a view without its layout page when loaded via ajax?
我現在有一個更新的_ViewStart。它似乎並沒有被工作雖:
用下面的JS視圖模型被加載在_layout捆綁的一部分:
var subjectservice = new baseservice(); // baseservice is an empty function
subjectservice.subjects = {};
subjectservice.getSubjects = function() {
alert('Hit');
subjectservice.subjects = 'data';
}
subjectservice.getSubjects();
預期的行爲是:
- 我得到當我最初加載應用程序時(使用_Layout),無論我在哪個頁面上的主題
- 導航時我不會再次調用getSubjects - 僅當我從其他視圖模型專門調用它時
但是,無論我導航到哪個頁面,即使Layout已經加載,我總是會收到警報消息。在Chrome Debugger中查看網絡面板顯示,我的所有捆綁js文件都會在每次頁面加載時重新加載。
一種觀點認爲,我想無需重新加載包和_layout加載的例子:
public ActionResult Index()
{
return View();
}
我如何可以加載佈局和它捆綁只有一次?
我想保持這個作爲外的開箱越好。 MVC *有*有一些機制來處理這個。 – RobVious
這不是它的工作方式。您可以創建部分請求或完整請求。部分請求完成了我之前描述的內容,而完整請求就是您現在正在做的事情。 –
MVC只是一種模式。它沒有客戶端的任何東西在......你的「MVC」應用程序正在服務器上運行。 –