Jquery jqGrid';url';参数会导致深层URL中的页面出错

Jquery jqGrid';url';参数会导致深层URL中的页面出错,jquery,asp.net-mvc,iis-6,jqgrid,Jquery,Asp.net Mvc,Iis 6,Jqgrid,我正在尝试将ASP.NET MVC站点部署到安装了3.5框架的Windows 2003 IIS 6.0服务器上(但不是ASP.NET MVC,它只是在bin文件夹中)。该站点使用jqGrid,但在部署服务器上,网格在某些情况下失败 网站的母版页位于/Views/Shared/site.master。它有一个脚本标记,包含初始化和加载jqGrid的JavaScript 我发现在部署时,JavaScript“/”和ASP“~”都没有强制脚本文件的路径为绝对路径。我需要添加一些代码以确保路径完整: &

我正在尝试将ASP.NET MVC站点部署到安装了3.5框架的Windows 2003 IIS 6.0服务器上(但不是ASP.NET MVC,它只是在bin文件夹中)。该站点使用jqGrid,但在部署服务器上,网格在某些情况下失败

网站的母版页位于/Views/Shared/site.master。它有一个脚本标记,包含初始化和加载jqGrid的JavaScript

我发现在部署时,JavaScript“/”和ASP“~”都没有强制脚本文件的路径为绝对路径。我需要添加一些代码以确保路径完整:

<script type="text/javascript" src=<%= VirtualPathUtility.ToAbsolute("~/Scripts/searchControls.js") %> ></script>
我很确定这是假的,因为我能看到的唯一变化是URL现在更深了一层(/Report.mvc/Edit vs/Report.mvc)

这个网络上有很多奇怪的东西,作为一个承包商,我对它们没有控制权,对服务器也没有更多的控制权

我认为这是jqGrid处理URL的问题,因为我试图将URL参数设置为以下值:

http://server_name/MyWebApp/Report.mvc/GetResultsL2E/  and
/MyWebApp/Report.mvc/GetResultsL2E/
两者都在所有页面上引发了脚本错误,表示s.data或s.url不是jQuery.js脚本中的函数

有人对如何在我的部署环境中实现这一点有任何提示吗

更新: 我很久以前就解决过这个问题,但现在我发现有这些奇怪怪癖的测试服务器是一个虚拟服务器。我想知道这是否与这个特定网络上的这个问题和其他问题有关。

“jqGrid不是一个函数,这意味着grid.base.js文件尚未加载,这意味着jQuery.jqGrid.js在调用.jqGrid之前未加载或失败。请看Firebug中的网络面板。在此调用之前必须加载grid.base.js

这不是网格的URL处理,因为如果您看到此错误,您还没有网格。

“jqGrid不是一个函数,这意味着grid.base.js文件尚未加载,这意味着jQuery.jqGrid.js在调用.jqGrid之前没有加载或失败。请查看Firebug中的网络面板。grid.base.js必须在调用之前加载


这不是网格的URL处理,因为如果您看到此错误,您还没有网格。

您必须编辑此文件:
JQuery.JQGrid.js。

查找此声明(第3行):
var pathtojsfiles=“js/”;//需要调整

将路径从“js/”更改为jqGrid javascript文件的任何路径

我把它改为:
var pathtojsfiles=“jqgrid/js/”;


它成功了。

您必须编辑此文件:
JQuery.JQGrid.js。

查找此声明(第3行):
var pathtojsfiles=“js/”;//需要调整

将路径从“js/”更改为jqGrid javascript文件的任何路径

我把它改为:
var pathtojsfiles=“jqgrid/js/”;


它成功了。

导入jqGrid脚本时,脚本标记看起来是什么样子的…?我不明白为什么必须在URL中添加“.”,将它们设置为绝对应该可以解决您的问题,但从您所说的来看,将它们设置为绝对不起作用…?不,它不起作用,这让我感到惊讶。这是IIS 6.0上的ASP.NET MVC,但它似乎只会影响j我的解决方法并不优雅:我在母版页中添加了javascript,将应用程序路径放入一个变量中,然后我黑客攻击jqGrid脚本,将pathtojsfiles变量与应用程序路径一起前置。我还必须在jqGrid初始化脚本中将应用程序路径变量前置到URL中。这非常奇怪/但是,在他的客户端站点我发现了很多奇怪的行为…导入jqGrid脚本时脚本标签看起来是什么样子的…?我不明白为什么必须在URL中添加“.”,使其绝对化应该可以解决您的问题,但是从您所说的,使其绝对化不起作用…?不,不起作用,这让我感到惊讶。这是IIS上的ASP.NET MVC6.0,但它似乎只会影响jQGrid。我的解决方法不那么优雅:我在母版页中添加了javascript,将应用程序路径放入变量中,并对jQGrid脚本进行了黑客攻击,以将pathtojsfiles变量与应用程序路径放在一起。我还必须将应用程序路径变量放在jQGrid初始化脚本中的URL前面t、 这很奇怪/但是,在这个客户端网站上,我发现了很多奇怪的行为…谢谢,Craig。这最终解决了没有发生的事情。但是,出于某种原因,我仍然需要构建路径并在客户端系统上传递它们。我必须将其添加到jqGrid脚本中。谢谢,Craig。这最终解决了没有发生的事情g、 然而,出于某种原因,我仍然必须构建路径并在我的客户机系统上传递它们。我必须将其添加到jqGrid脚本中。很好,Marvin。但是在这种情况下,由于客户服务器和网络中的怪癖,我必须将存储完全限定URL的变量添加到脚本文件中。很好,Marvin。但是在这个ca中由于客户的服务器和网络中存在的问题,我不得不在脚本文件中添加一个存储完全限定URL的变量。
jQuery("#searchResultList").jqGrid is not a function

           loadComplete: function() {\r\n
http://server_name/MyWebApp/Report.mvc/GetResultsL2E/  and
/MyWebApp/Report.mvc/GetResultsL2E/