我正在使用MVC 5.
我需要在加载每个页面之前调用一个函数。
我是在_Layout.cshtml
视图中完成的:
$(function () {
$('body').on('click', function (e) {
var valor = GetSession();
$('#hdnSessionTime').val(valor);
});
}
我在布局页面中定义的隐藏字段中保存了一个值,每次用户点击每个页面时,都会执行名为GetSession
的函数。
问题是它在@RenderBody()
之后执行,我之前需要它......
这可能吗?
答案 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了解类似示例。