【问题标题】:Using jQuery to load Telerik MVC scripts使用 jQuery 加载 Telerik MVC 脚本
【发布时间】:2011-05-26 09:15:35
【问题描述】:
我正忙于构建我的第一个使用 Telerik MVC 组件的 MVC 应用程序。他们的文档指定在视图底部调用 ScriptRegistrar 助手,例如“在母版页的末尾。”。我假设这会呈现一个脚本块,该脚本块只能在页面加载时运行。我通常更喜欢使用 jQuery 来实现这一点,并将所有与脚本相关的内容放在我的母版页顶部,最好是在 <head> 标记中。我可以做些什么来使用 Telerik 组件实现这一点,并消除我的母版页底部的孤独和被遗忘的助手调用吗?
【问题讨论】:
标签:
asp.net
asp.net-mvc
asp.net-mvc-3
telerik-mvc
【解决方案1】:
ScriptRegistrar 有两个主要职责:
- 渲染 UI 组件所需的 JavaScript 文件
- 为 UI 组件渲染 JavaScript 初始化脚本
解释了为什么 ScriptRegistrar 需要位于页面的最后。之所以如此,是因为所有 UI 组件都必须在渲染期间向其注册。由于缺少任何生命周期(顺便说一句,这是一件好事),ScriptRegistrar 必须最后出现(因此呈现)。否则 UI 组件注册太晚 - ScriptRegistrar 已经吐出它的输出了。
要回答您的问题 - 是的,您可以省略 ScriptRegistrar 并自己包含所需的 JavaScript 文件。但是,您随后需要手动初始化 UI 组件。后者是可能的,但没有记录。
【解决方案2】:
ScriptRegister 块生成的代码类似于
<script type="text/javascript" src="/asset.axd?id=dgAAAB-LCAAAAAAABADsvQdgHEmWJSYvbcp7f0r1StfgdKEIgGATJNiQQBDswYjN5pLsHWlHIymrKoHKZVZlXWYWQMztnbz33nvvvffee--997o7nU4n99__P1xmZAFs9s5K2smeIYCqyB8_fnwfPyJ-8Uezjx597xd_tPro0Uevp3WxapuPRh-d82dL-uynf9E6r6-3d8f743vjn8Z31UePdn7J93_J90cfTVtq0Obv2rs_nV1mDb9NDS7p072d3d0x_be7e58-mVIf9z69T7989Kit1_kv-X8CAAD__9hh2r92AAAA"></script>
它没有提供关于正在渲染什么脚本的线索。但是,使用 FireFox 的快速峰值表明正在加载 jQuery。我建议您从 scriptregister 块开始,然后使用 Firebug 找出它的调用,然后尝试将其全部换成 jQuery 包含(以及其他脚本,如果它们被拾取)。