我的 Razor View 中有一个 WebGrid。它很好地执行其任务,例如分页和排序。现在我需要在ajax调用中进行分页和排序,所以我给它分配了一个ajaxUpdateContainerId。
现在什么时候grid.GetHtml()
方法被调用时,它首先渲染其脚本,然后渲染表 Html。我在页面末尾加载了 jquery(_Layout View 中的脚本部分)。
因此,Ajax 函数没有用,因为它找不到 JQuery。
我有一个解决方法:我从页面源复制渲染的脚本并将其粘贴到 View 的脚本部分,它可以工作,但这仍然在控制台中留下错误,所以我相信这不是一个正确的解决方案。
另一个解决方法是在调用 grid.GetHtml()
之前引用 jquery方法,但这会留下对同一个 javascript 库的两个引用。又是糟糕的设计。
有什么方法可以强制 WebGrid 在脚本部分呈现脚本,因为它应该符合逻辑行为。
最佳答案
- 在部分 View 中创建 WebGrid
- 在主页中的 doc $(document).ready(function () 调用中,向 Controller 发出 ajax 调用以加载网络网格的模型,然后将部分 View 传回以在主页上加载。里>
这是一个例子,其中有人正在做非常相似的事情。当我遇到类似的情况并使用不同的控件时,我就采用了这种方法。 http://www.dotnetawesome.com/2014/11/how-to-implement-custom-paging-and-sorting-in-webgrid-using-jquery.html
关于jquery - MVC WebGrid 在其表格之前呈现 AJaX 脚本。如何在脚本部分强制生成脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43692946/