我正在进行一项练习,我在静态文件中缩小了大部分javascript,然后每个视图都有这样的内容:
@section Script
{
@Html.Action("MinifyJavaScript", "Resource", new { viewPath = "~/Views/User/Register.Js.cshtml", model = Model })
}
它反过来呈现微小的,非静态的javascript代码片段,如下所示:
@model UserRegisterModel
<script>
(function ($, b) {
$(function () {
b.views.user.register('@Url.Action("ValidateInput", "User")');
});
})(jQuery, bruttijjimo);
</script>
这允许我更多地在视图中缓存javascript,因为只有随模型变化的部分才能改变(并且通常被视为部分视图)
现在我想通过删除布局部分的需要来进一步升级这种做法,按照惯例,在视图之后立即渲染javascript局部视图(与视图传递相同的模型)。我已经创建了在视图中压缩javascript的方法。还有一个惯例,即视图的javascript必须位于.js.cshtml
文件中,并与视图共享模型。
我需要的是从布局中获取视图的模型,以及视图的名称,并将其渲染到那里。
这只适用于实际视图,因为如果他们需要发出javascript,部分人员会使用脚本管理器。
那么:如何从布局中获取视图的模型?其余的我可以弄明白,但这个是我的想法..
答案 0 :(得分:0)
那么:如何从布局中获取视图的模型?
@Model
应该可以为您提供所需内容。
据说我不太明白你在做什么,但事实上你在你的视图中有javascript,而不是将它放在一个单独的javascript文件中,并将缓存内容留给浏览器并重新发明一些轮子的感觉错。