MVC WebGrid 在 table 之前呈现 AJaX 脚本。如何在脚本部分强制生成脚本
MVC WebGrid renders AJaX script before its table. How to force the generation of script in script section
我的 Razor 视图中有一个 WebGrid。它正在很好地执行其任务,如分页和排序。现在我需要在 ajax 调用中进行分页和排序,所以我给它分配了一个 ajaxUpdateContainerId。
现在当 grid.GetHtml()
方法被调用时,它首先渲染它的脚本,然后 table Html。我在页面末尾加载了 jquery(_Layout 视图中的脚本部分)。
因此,Ajax 函数无法找到 JQuery。
我有一个解决方法:我从页面源复制呈现的脚本并将其粘贴到视图的脚本部分并且它有效,但这仍然在控制台中留下错误所以我认为这不是一个合适的解决方案.
另一种解决方法是在调用 grid.GetHtml()
方法之前引用 jquery,但这将留下对同一个 javascript 库的两个引用。再次糟糕的设计。
那么有什么方法可以强制 WebGrid 在脚本部分呈现脚本,因为它应该符合逻辑。
您可以在包含脚本的视图中定义一个部分,并在 jquery 加载后呈现它
在您的视图中(包含网格)
@section scripts{
<script>
//My awesome Script
</script>
}
并且在您的视图中 /Layout
@RenderSection("scripts",required:false)
你可以查看这里了解更多信息
https://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts-and-sections-with-razor
- 在局部视图中创建您的 WebGrid
- 在您的主页中调用 doc $(document).ready(function () 时,向您的控制器发出 ajax 调用以加载您的 webgrid 模型,然后将部分视图传回加载在您的主页上。
这是一个例子,其中有人正在做非常相似的事情。当我 运行 使用不同的控件进入类似情况时,我遵循了这种方法。
http://www.dotnetawesome.com/2014/11/how-to-implement-custom-paging-and-sorting-in-webgrid-using-jquery.html
我的 Razor 视图中有一个 WebGrid。它正在很好地执行其任务,如分页和排序。现在我需要在 ajax 调用中进行分页和排序,所以我给它分配了一个 ajaxUpdateContainerId。
现在当 grid.GetHtml()
方法被调用时,它首先渲染它的脚本,然后 table Html。我在页面末尾加载了 jquery(_Layout 视图中的脚本部分)。
因此,Ajax 函数无法找到 JQuery。
我有一个解决方法:我从页面源复制呈现的脚本并将其粘贴到视图的脚本部分并且它有效,但这仍然在控制台中留下错误所以我认为这不是一个合适的解决方案.
另一种解决方法是在调用 grid.GetHtml()
方法之前引用 jquery,但这将留下对同一个 javascript 库的两个引用。再次糟糕的设计。
那么有什么方法可以强制 WebGrid 在脚本部分呈现脚本,因为它应该符合逻辑。
您可以在包含脚本的视图中定义一个部分,并在 jquery 加载后呈现它
在您的视图中(包含网格)
@section scripts{
<script>
//My awesome Script
</script>
}
并且在您的视图中 /Layout
@RenderSection("scripts",required:false)
你可以查看这里了解更多信息
https://weblogs.asp.net/scottgu/asp-net-mvc-3-layouts-and-sections-with-razor
- 在局部视图中创建您的 WebGrid
- 在您的主页中调用 doc $(document).ready(function () 时,向您的控制器发出 ajax 调用以加载您的 webgrid 模型,然后将部分视图传回加载在您的主页上。
这是一个例子,其中有人正在做非常相似的事情。当我 运行 使用不同的控件进入类似情况时,我遵循了这种方法。 http://www.dotnetawesome.com/2014/11/how-to-implement-custom-paging-and-sorting-in-webgrid-using-jquery.html