2015-03-08 55 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第一種選擇)

相關問題