我有一个页面,其中包含部分 View 。
MyMainView.cshtml
<div>
@Html.Partial("MyPartial")
</div>
@section pagespecific {
<script type='text/javascript'>
$(document).ready(function(){
console.log('Value is: ' + $('#MyModelField').val());
});
</script>
}
MyPartial.cshtml
<div>
@Html.HiddenFor(x => x.MyModelField)
</div>
模型中 MyModelField
的值为 True
,但是,我在浏览器控制台中得到以下输出:
Value is: undefined
为什么这没有引起关注?在触发之前,不应该将部分 View 添加到 DOM 中吗?
如果我将 $(document).ready()
更改为 $(window).load()
,它会按预期工作。
如何实现所需的行为?
最佳答案
是的,这是真的,原因是每当你的 dom 准备好时 .ready
就会被触发。因此,您的页面首先加载,并触发 jquery .ready
function() ,而顺序执行的部分 View 也在服务器端执行。
两者的可用性不同。
停止或者你想在一段时间后执行。
- 您也可以在部分 View 中执行此操作
或
给出您的持续时间的延迟时间
$(document).ready(function(){ console.log('Value is: ' + $('#MyModelField').val()); setTimeout("$('#buttonid').click()", DelayDuration); });
//DelayDuration表示给出毫秒值,1000毫秒=1秒
这里问了同样的问题
JQuery events don't work with ASP.NET MVC Partial Views
Is it possible to kick off a javascript function after a partial view renders in MVC Asp.net?
关于jquery - $(document).ready() 在加载部分 View 之前触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27615022/