0

有一个移动应用程序并想运行一个 javascript。将脚本(“startstop”)放在一个包中:

    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中的 Action(s) 没有被触发/执行 ( IExporer/Chrome)。但是,当我复制生成的页面的源代码(包括脚本和内容)并在IExporer/ Chrome此 startstop 脚本中打开保存的(复制的)页面时,运行良好。

有人知道可能出了什么问题吗?在此先感谢您的帮助!

4

2 回答 2

1

如果脚本文件名以 .min.js 结尾,则会被忽略。如果是这种情况,请尝试将其添加到 RegisterBundles 函数的顶部。

bundles.IgnoreList.Clear();

编辑:澄清。

于 2013-02-07T14:00:48.670 回答
0

不知道为什么,但问题是由@section.Scripts 引起的:

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

如果没有这个部分,startstop-script可以正常工作:

@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>

仍然让我感到困惑,但它有效......!

于 2013-02-08T07:23:42.400 回答