繁体   English   中英

是否可以控制 HTML Razor 组件呈现的顺序?

[英]Is it possible to control the order in which HTML Razor components render?

我正在尝试渲染我的一个页面,并且在要显示的 div 顶部有一个Html.RenderAction()调用。 我想从通过我的 RenderAction 调用显示的页面内部调用document.ready()中的我的 js 初始化方法之一,但它似乎在 Html 之后的页面中的Html.RenderAction()之前触发document.ready() Html.RenderAction()调用。

因此,init function 正在检查剑道元素中的数据,该元素在 JQuery 完成之前被调用后尚未加载,并且仅将应为剑道输入的输入视为默认 ZFC35FDC70D5FC35FDC70D5FC67D2369888 <input> 3

换句话说,有没有办法延迟 RenderAction 的加载/调用,直到页面内部加载? 或者我应该使用一些丑陋的 CSS 将我需要的部分保留在我的 div 的顶部? 下面是我的代码的非常基本的摘要:

<html>
...
<div>
  @Html.RenderAction("File that calls init() method")
  <...rest of page that I need to load first, including kendo text boxes/>
</div>

</html>

调用 init() 方法的文件

<div>
...
</div>
<script src="...">
  $(document).ready(function() {
    myJs.init(params)
  }
</script>


现在我已经在其他地方实现了下面的答案,我意识到当从document.ready切换到window.on('load',...)时,它现在打破了另一个类似的视图,但是取而代之的是@Html.RenderAction调用位于底部:

...
<div>
  <>page including kendo inputs</>
  @Html.RenderAction("different file that calls same init() method")
</div>

</html>

基本上,如果 razor 在剑道之前, document.ready对我有用,但反之则不然 - 而window.on('load',function(){...})则相反。

这可能有效,尝试使用 $(window).load(function() 而不是 $(document).ready(function()

<div>
...
</div>
<script src="...">
  $(window).load(function() {
    myJs.init(params)
  }
</script>

来自以下链接:“在完整页面完全加载时执行,包括所有框架、对象和图像”

jQuery - $(document).ready 和 $(window).load 之间有什么区别?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM