2013-02-07 91 views
0

得到了一個移動應用程序,並希望運行一個JavaScript。在一個包放在腳本( 「startstop」):MVC 4.0 javascript不起作用

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

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

包括在視圖中束:

@section Scripts { 
    @Scripts.Render("~/bundles/startstop")  
} 

簡化腳本:

$(document).ready(function() { 
    alert('Hello'); 
}); 

當我跑了頁/應用程序,startstop-script的操作未被觸發/執行(IExporer/Chrome)。但是,當我複製生成的頁面源(包括腳本&內容)並打開IExporer/ Chrome中保存的(複製的)頁面時,此啓動腳本運行良好。

任何人有任何想法可能是什麼錯?在此先感謝您的幫助!

+0

完整的腳本名稱是startstop.js – Gerard

+0

您是否在局部視圖中使用了這個名稱? – ssilas777

+0

你是否也在某個時候引用jquery?現在你已經給出了文件名,我可以複製這個罰款,它的工作原理,捆綁很好。所以剩下的兩個選項我可以看到,你沒有調用global.asax中的RegisterBundles方法,或者你沒有引用jquery腳本。 –

回答

1

如果腳本文件名以.min.js結尾,則會被忽略。如果是這種情況,請嘗試將其添加到RegisterBundles函數的頂部。

bundles.IgnoreList.Clear(); 

編輯:澄清。

+0

完整的腳本名稱是startstop.js – Gerard

0

不知道爲什麼,但問題是@ section.Scripts引起:

@section Scripts { 
    @Scripts.Render("~/bundles/startstop")  
} 

如果沒有這一部分的startstop腳本正常工作:

@Scripts.Render("~/bundles/startstop") 

做工作。 第一種情況使得從第二種情況略有不同:

</div> 
    </div> 
<script src="/Scripts/jquery-1.7.2.js"></script> 
<script src="/Scripts/jquery.mobile-1.1.0.js"></script> 
<script src="/Scripts/jquery-1.7.2.js"></script> 
<script src="/Scripts/startstop.js"></script> 
</body></html> 

雖然工作變的樣子:

 <script src="/Scripts/jquery-1.7.2.js"></script> 
    <script src="/Scripts/startstop.js"></script> 
    </div> 
    </div> 
<script src="/Scripts/jquery-1.7.2.js"></script> 
<script src="/Scripts/jquery.mobile-1.1.0.js"></script> 
</body></html> 

不過我感到困惑,但它的作品...!