从Document.ready中的bundle执行javascript

Execute javascript from bundles in Document.ready

本文关键字:执行 javascript bundle 中的 Document ready      更新时间:2023-09-26

我使用MVC4默认模板。

我在/Scripts/MyApp/中添加了一个脚本:MyScript.js,带有一个函数:

function Testing()
{
    alert('test');
}

在全球.asax:

 bundles.Add(new ScriptBundle("~/bundles/myapp").Include(
    "~/Scripts/MyApp/MyScript.js"));

我想在/Views/Home/Index.cshml 中调用此方法

我尝试了下面的代码,但没有成功:

<script type="text/javascript" lang="javascript">
    $(document).ready(function () {
        Testing();
    });
</script>    
@Scripts.Render("~/bundles/myapp")

当我查看源代码时,指向MyScript.js的链接就在那里,我可以导航到它(转到源代码)

但是不执行$(document).ready中的Testing()方法。

更新1

<script type="text/javascript" lang="javascript">
    $(document).ready(function () {
        alert("test");
    });
</script>

尝试在包含bundle之后放入内联脚本。此外,script标签上的lang属性也被弃用:

@Scripts.Render("~/bundles/myapp")
<script type="text/javascript">
    $(document).ready(function () {
        Testing();
    });
</script>    

更新:

好吧,我想你忘了包含jquery,所以$函数没有定义:-)

因此,如果你想使用捆绑包:

bundles.Add(new ScriptBundle("~/bundles/myapp").Include(
    "~/Scripts/jquery-{version}.js", "~/Scripts/MyApp/MyScript.js")
);

或者如果你不想使用捆绑包:

<script type="text/javascript" src="~/scripts/jquery-1.7.1.js"></script>
<script type="text/javascript" src="~/scripts/MyScript.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        Testing();
    });
</script>