如何使用视图模型为我的所有视图编写一行?

时间:2017-01-02 18:18:37

标签: .net asp.net-mvc razor viewmodel

我在所有观看的开头使用以下行:

<script> var viewModel = @Html.Raw(JsonConvert.SerializeObject(Model)); </script>

我这样做是为了从我的javascript框架管理视图模型但我更喜欢以某种方式集中该行而不是在我的所有视图中编写它,我不确定我是否可以在视图布局中执行它自Razor此时不知道视图模型类型。

我怎样才能将这一行放在一个地方以供我所有观看?

1 个答案:

答案 0 :(得分:1)

当razor执行布局代码时,ViewData字典(和页面模型)可用。所以你可以在布局上执行此操作。

<script>
    var mySecretApp = mySecretApp || {};       
    @if (!ViewContext.IsChildAction)
    {
        @:mySecretApp.pageViewModel = @Html.Raw(JsonConvert.SerializeObject(Model));
    }
    console.log('viewmodel', mySecretApp.pageViewModel);
</script>