7

我正在使用 Kendo ASP.NET MVC 包装器。我注意到包装器正在渲染脚本以在控件标记之后立即初始化控件。有没有办法配置让脚本在底部呈现?以前,使用 Telerik ASP.NET MVC 控件,您可以让脚本管理器在底部呈现所有初始化。那可能吗?

4

3 回答 3

12

在 2013 Q1 版本中,他们增加了对延迟脚本的支持。你可以像这样使用它:

@(Html.Kendo().AutoCompleteFor(m => m)
    .Filter(FilterType.Contains)
    .MinLength(2)
    .DataSource(config =>
        {
            config.Read(action, controller, routeValues);
            config.ServerFiltering(true);
        }).Deferred())

注意Deferred()链末尾的方法。然后,在您的布局中,在标记中的任何位置添加以下内容:

  <!-- ... -->
  @Html.Kendo().DeferredScripts()
  </body>
</html>

有关详细信息,请参阅 http://www.kendoui.c​​om/forums/mvc/general -discussions/kendo-initialization-scripts-in-body-interfere-with-other -libraries.aspx。

于 2013-05-29T16:22:28.187 回答
2

很抱歉,这是不可能的,也无法解决。MVC 的 Kendo Wrappers 脚本总是在小部件的 html 包装器之后呈现。

它在文档中提到。

编辑:这在稍后可能会使用延迟脚本渲染 jrummell exiplained。

于 2013-03-10T19:51:40.093 回答
2

这会有点令人头疼,但是由于包装器生成 jQuery 脚本,您不能在局部视图中生成包装器,获取生成的脚本并将其注入页面底部的脚本标记中吗?当然,这意味着要使用重复的代码或大量代码以可重用的方式生成解决方法,所有这些都使得脚本最终位于页面底部而不是中间。

我假设这是为了提高性能(最佳实践通常是将 CSS 放在顶部,将脚本放在底部)?

于 2013-03-19T19:05:07.327 回答