我有一个非常标准的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”应用程序正在服务器上运行。 –