我正在使用 MVC 5。
我需要在加载每个页面之前调用一个函数。
我是在 _Layout.cshtml
View 中完成的:
$(function () {
$('body').on('click', function (e) {
var valor = GetSession();
$('#hdnSessionTime').val(valor);
});
}
我在布局页面中定义的隐藏字段中保存了一个值,每次用户单击每个页面时,都会执行名为 GetSession
的函数。
问题是它在 @RenderBody()
之后执行,而我之前需要它...
这可能吗?
最佳答案
有时您希望在调用操作方法之前或操作方法运行之后执行逻辑。为支持这一点,ASP.NET MVC 提供了过滤器
。过滤器是自定义类,它提供了声明式和程序化的方式来向 Controller 操作方法添加操作前和操作后行为。您可以使用 自定义过滤器
,例如 this .
客户端
如果你想在客户端运行代码,你可以使用这段代码(@RenderBody() 之前):
<script type="text/javascript">
$(document).ready(function () {
var valor = GetSession();
$('#hdnSessionTime').val(valor);
});
</script>
参见 this对于类似的例子。
关于javascript - mvc _layout 在 renderbody() 执行之前调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45761623/