我有一个非常标准的 MVC 解决方案,其中包含 _Layout.cshtml、Index.cshtml 等。我试图在 Layout 中加载一些必需的包一次,这样当我更改视图时,我只能从服务器获得我需要的东西,而不是我已经拥有的(包、布局 html 等)。
在这篇文章之后: MVC 3:如何在通过 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 调试器中查看网络面板显示我所有捆绑的 js 文件都在每次页面加载时重新加载。
我尝试在不重新加载包和_Layout的情况下加载的视图示例:
public ActionResult Index()
{
return View();
}
如何仅加载一次 Layout 及其捆绑包?