如何直接在布局中获取视图模型?

时间:2012-05-05 21:23:06

标签: asp.net-mvc-3 layout model

我正在进行一项练习,我在静态文件中缩小了大部分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,部分人员会使用脚本管理器。

那么:如何从布局中获取视图的模型?其余的我可以弄明白,但这个是我的想法..

1 个答案:

答案 0 :(得分:0)

  

那么:如何从布局中获取视图的模型?

@Model应该可以为您提供所需内容。

据说我不太明白你在做什么,但事实上你在你的视图中有javascript,而不是将它放在一个单独的javascript文件中,并将缓存内容留给浏览器并重新发明一些轮子的感觉错。