2015-03-08 49 views
1

我在nopcommerce的_Root.Head.cshtml页面中添加了引导程序链接。但是我的浏览器显示“Uncaught TypeError:undefined不是一个函数”,用于以下功能,包括引导程序。请帮助我如何启用引导程序和其他功能。Bootstrap.js未在nopcommerce中加载3.10

Html.AppendCssFileParts("~/Content/jquery-ui-themes/smoothness/jquery-ui-1.10.0.custom.min.css"); 
    Html.AppendScriptParts("~/Scripts/jquery-1.7.1.min.js"); 
    Html.AppendScriptParts("~/Scripts/public.ajaxcart.js"); 
    Html.AppendScriptParts("~/Scripts/public.common.js"); 
    Html.AppendScriptParts("~/Scripts/jquery-ui-1.10.0.min.js"); 
    Html.AppendScriptParts("~/Scripts/jquery.validate.unobtrusive.min.js"); 
    Html.AppendScriptParts("~/Scripts/jquery.validate.min.js"); 
    Html.AppendScriptParts("~/Scripts/jquery.unobtrusive-ajax.min.js"); 
    Html.AppendScriptParts("~/Scripts/js/bootstrap.js"); 

注意:以下图像是四个分离的图像。

BootStrap not loading Autocomplete
Nav on Popover

以下是从浏览器源。 注意:这里bootstrap.js是在jquery-1.7.1.min.js之前加载的。

<link href="/Themes/DefaultClean/Content/globalstyle.css" rel="stylesheet" type="text/css" /> 
<link href="/Themes/DefaultClean/Content/bootstrap-responsive.css" rel="stylesheet" type="text/css" /> 
<link href="/Themes/DefaultClean/Content/bootstrap.css" rel="stylesheet" type="text/css" /> 
<link href="/Themes/DefaultClean/Content/styles.css" rel="stylesheet" type="text/css" /> 
<link href="/Content/jquery-ui-themes/smoothness/jquery-ui-1.10.0.custom.min.css" rel="stylesheet" type="text/css" /> 

    <script src="/Scripts/js/bootstrap.js"></script> 
<script src="/Scripts/jquery-1.7.1.min.js"></script> 
<script src="/Scripts/jquery.unobtrusive-ajax.min.js"></script> 
<script src="/Scripts/jquery.validate.min.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.min.js"></script> 
<script src="/Scripts/jquery-ui-1.10.0.min.js"></script> 
<script src="/Scripts/public.common.js"></script> 
<script src="/Scripts/public.ajaxcart.js"></script> 
<script src="/Scripts/slimbox2.js"></script> 
+0

你是@section脚本{}部分里面的脚本? – 2015-03-08 20:20:44

+0

感谢您的关注@Alundrathedreamwalker。是的,我将这些脚本放在side @ {}标记中。 – 2015-03-09 01:32:04

+0

看起来像你再次引用你的bootstrap.js两次。 你需要只包含一个引用到每个CSS和js文件 – 2015-03-09 15:22:11

回答

1

NopCommerce的“AppendScriptParts”(这是一个延伸至NopCommerce提供的MVC HTML对象)不呈现在它们被添加的顺序脚本。

事实上,它是颠倒的。它增加了每个脚本部分列表的开头:

// excerpt from Nop.Web.Framework/UI/PageHeadBuilder.cs : AppendScriptParts 
_scriptParts[location].Insert(0, new ScriptReferenceMeta 
{ 
    ExcludeFromBundle = excludeFromBundle, 
    Part = part 
}); 

而且为了使他们算账:

// excerpt from Nop.Web.Framework/UI/PageHeadBuilder.cs : GenerateScripts 
var result = new StringBuilder(); 
foreach (var path in _scriptParts[location].Select(x => x.Part).Distinct()) 
{ 
    result.AppendFormat("<script src=\"{0}\" type=\"text/javascript\"></script>", urlHelper.Content(path)); 
    result.Append(Environment.NewLine); 
} 
return result.ToString(); 

您可以将其他呼叫或您之前添加一个调用RenderScriptParts为bootstrap.js可以直接在_Root.head.cshtml的@Html.NopScripts(this.Url, ResourceLocation.Head)调用下直接插入您对bootstrap.js的调用。您也可以在脚本的src属性中使用“〜”。

@Html.NopScripts(this.Url, ResourceLocation.Head) 
<script src="~/Scripts/js/bootstrap.js"></script> 

@Html.NopScripts(this.Url, ResourceLocation.Head) 
<script src="@Url.Content("~/Scripts/js/bootstrap.js")"></script> 

(使用新版本NopCommerce第一种选择)