在renderbody()执行之前调用mvc _layout函数

时间:2017-08-18 17:01:47

标签: javascript jquery asp.net-mvc razor layout

我正在使用MVC 5.

我需要在加载每个页面之前调用一个函数。 我是在_Layout.cshtml视图中完成的:

 $(function () {
        $('body').on('click', function (e) {
            var valor = GetSession();
            $('#hdnSessionTime').val(valor);
        });
}

我在布局页面中定义的隐藏字段中保存了一个值,每次用户点击每个页面时,都会执行名为GetSession的函数。

问题是它在@RenderBody()之后执行,我之前需要它......

这可能吗?

1 个答案:

答案 0 :(得分:1)

有时您希望在调用操作方法之前或在操作方法运行之后执行逻辑。为了支持这一点,ASP.NET MVC提供了filters。过滤器是自定义类,提供声明式和编程式方法,以向控制器操作方法添加操作前和操作后行为。您可以custom filter使用<script type="text/javascript"> $(document).ready(function () { var valor = GetSession(); $('#hdnSessionTime').val(valor); }); </script>

客户端

如果您想在客户端运行代码,可以使用此代码( @RenderBody()之前):

{{1}}

请参阅this了解类似示例。