【发布时间】:2017-09-27 07:47:12
【问题描述】:
我的 Razor 视图中有一个 WebGrid。它很好地执行了分页和排序等任务。现在我需要在 ajax 调用中进行分页和排序,所以我给它分配了一个 ajaxUpdateContainerId。
现在当grid.GetHtml() 方法被调用时,它首先渲染它的脚本,然后渲染表格Html。我在页面末尾加载了 jquery(_Layout 视图中的脚本部分)。
因此,Ajax 函数无法找到 JQuery。
我有一个解决方法:我从页面源复制渲染的脚本并将其粘贴到视图的脚本部分,它可以工作,但这仍然会在控制台中留下错误,所以我认为这不是一个正确的解决方案。
另一种解决方法是在调用grid.GetHtml() 方法之前引用jquery,但这会留下对同一个javascript 库的两个引用。又是糟糕的设计。
那么有什么方法可以强制 WebGrid 在脚本部分呈现脚本,因为它应该在逻辑上表现。
【问题讨论】:
-
当您在主页(包含部分视图的页面)中声明库和脚本引用时,您的网格应该能够毫无问题地访问其中的 jquery。尝试将 jquery 从 @script 部分移动到页面的标题,以查看您的 gridview 是否会看到 jquery。
-
@Dennis1679 是的,Jquery 可以移动到头部是对的。这将解决一些性能下降的问题。
标签: jquery ajax asp.net-mvc webgrid