【问题标题】:jQuery and Razor execution orderjQuery 和 Razor 执行顺序
【发布时间】:2019-10-10 13:32:06
【问题描述】:

我正在开发 MVC 应用程序并试图了解以下内容:

  1. 我正在从 MVC 控制器填充模型并将其发送到视图,视图具有 JQuery、剃须刀代码和 HTML 元素,哪些将首先创建? HTML 会创建 DOM 而不是 JQuery 运行而不是 raor 代码?

  2. 模型具有所有标签的所有验证和值(文本),因此必须先执行剃须刀代码,对吧?

  3. 我在某处读到“将首先执行什么?”取决于你在哪里编写 JQuery 代码,在标题中还是在正文的末尾?我不明白这个..

【问题讨论】:

    标签: c# jquery asp.net-mvc razor


    【解决方案1】:

    我从 MVC 控制器填充模型并将其发送到视图,视图具有 JQuery、剃须刀代码和 HTML 元素,它们将首先创建? HTML 将创建 DOM 而不是 JQuery 运行而不是剃须刀代码?

    Razor 在服务器端运行,并在 ASP.Net MVC 视图中用于创建 HTML,然后将其发送到客户端。然后由接收浏览器生成 DOM 并最终运行任何 JS。

    模型对所有标签都有所有验证和值(文本),所以剃须刀代码必须首先执行,对吧?

    没有。 ModelBinder 首先执行并验证模型(假设您已经设置了一些数据注释)。 Razor 仅在输出视图时使用,这是服务器端管道中的最后一步。

    我在某处读到“将首先执行什么?”取决于你在哪里编写 JQuery 代码,在标题中还是在正文的末尾?这个没看懂。。

    这仅与客户端逻辑有关。最佳实践是将 JS/jQuery 代码放置在页面的 <head></body> 之前。如果您执行前者,您将需要一种等待 DOM 加载的方法,然后再执行您的 JS。在普通 JS 中,这将涉及向 window 添加一个 DOMContentLoaded 事件处理程序。在 jQuery 中,它将是一个 document.ready 事件处理程序。

    简而言之,Razor 和 jQuery 在客户端/服务器分界的不同方面运行,时间完全不同。它们彼此完全无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多