jquery在localhost上工作但在IIS上没有工作

时间:2014-09-04 06:54:54

标签: jquery asp.net-mvc-4 iis jqgrid localhost

我正在ASP.NET MVC4上创建一个应用程序。

我在jqGrid中显示数据,其中有一个附有名称列的超链接。

单击它,将打开一个jQuery对话框。

部署应用程序时,同样的事情不起作用。

我收到错误消息:

TypeError: n.browser is undefined

显示错误:

<script src="/Analytics/bundles/jqueryui?v=a0vNGd5I0ua6k0Tl4zU-HRoN0y8crNJXKefaMq_937w1">

我尝试在互联网上找到解决方案,但没有找到线索。 我已经检查过所有js和css只加载一次。

以下是截图: Html from Firebug

BundleConfiguration也设置为true。

需要解决方案......

更新@ Amila的请求:BundleConfig.cs

public static void RegisterBundles(BundleCollection bundles)
{
    bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                "~/Scripts/jquery-{version}.js"));

    bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
                "~/Scripts/jquery-ui-{version}.js"));

    bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                "~/Scripts/jquery.unobtrusive*",
                "~/Scripts/jquery.validate*"));

    bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
                "~/Scripts/modernizr-*"));

    bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));

    bundles.Add(new StyleBundle("~/Content/themes/base/css").Include(
                "~/Content/themes/base/jquery.ui.core.css",
                "~/Content/themes/base/jquery.ui.resizable.css",
                "~/Content/themes/base/jquery.ui.selectable.css",
                "~/Content/themes/base/jquery.ui.accordion.css",
                "~/Content/themes/base/jquery.ui.autocomplete.css",
                "~/Content/themes/base/jquery.ui.button.css",
                "~/Content/themes/base/jquery.ui.dialog.css",
                "~/Content/themes/base/jquery.ui.slider.css",
                "~/Content/themes/base/jquery.ui.tabs.css",
                "~/Content/themes/base/jquery.ui.datepicker.css",
                "~/Content/themes/base/jquery.ui.progressbar.css",
                "~/Content/themes/base/jquery.ui.all.css",
                "~/Content/themes/base/jquery.ui.theme.css"));

    bundles.Add(new StyleBundle("~/Content/jquery.jqGrid/css").Include("~/Content/jquery.jqGrid/ui.jqgrid.css"));
}

_Layout.cshtml

(校长)

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Styles.Render("~/Content/jquery.jqGrid/css")
@Styles.Render("~/Content/themes/base/css")

(正文代码)

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryui")
@RenderSection("scripts", required: false)

JQGrid的视图包含:

@section Scripts{
    @Scripts.Render("~/bundles/jqueryval")
    @Scripts.Render("~/Scripts/i18n/grid.locale-en.js")
    @Scripts.Render("~/Scripts/jquery.jqGrid.min.js")
}

5 个答案:

答案 0 :(得分:1)

嘿,你必须使用最新版本的jquery,即: <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

它肯定会解决这个错误。

答案 1 :(得分:1)

您需要在web.config中设置编译debug =“false”才能使用Jquery&amp;无论.NET是运行4.0还是4.5,都要捆绑css。

编译debug =“false”targetFramework =“4.0”

答案 2 :(得分:0)

检查this链接

var matched, browser;

jQuery.uaMatch = function( ua ) {
    ua = ua.toLowerCase();

    var match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
        /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
        /(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
        /(msie) ([\w.]+)/.exec( ua ) ||
        ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
        [];

    return {
        browser: match[ 1 ] || "",
        version: match[ 2 ] || "0"
    };
};

matched = jQuery.uaMatch( navigator.userAgent );
browser = {};

if ( matched.browser ) {
    browser[ matched.browser ] = true;
    browser.version = matched.version;
}

// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
    browser.webkit = true;
} else if ( browser.webkit ) {
    browser.safari = true;
}

答案 3 :(得分:0)

你可以用你用于jQuery和jQueryUI的两个软件包来更新你的帖子吗?

您必须在调试模式和发布模式下使用两个不同版本的jQuery。请查看http://api.jquery.com/jquery.browser/

你得到n.browser,因为你的脚本被缩小了,否则就是$ .browser

答案 4 :(得分:0)

直接在视图顶部引用您的jquery文件。捆绑包有时不起作用:

 @section Scripts
{
<script src="../Scripts/jquery-1.10.1.js"></script>
<script src="../Scripts/jquery-1.10.1.min.js"></script>
<script src="../Scripts/jquery.validate.js"></script>
 .
 .
 .
etc.....

}