从Document.ready中的bundle执行javascript

时间:2012-08-21 19:35:40

标签: javascript asp.net-mvc asp.net-mvc-4 asp.net-optimization

我使用MVC4默认模板。

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

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

在global.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的链接就在那里,我可以导航到它(转到源代码)

Testing()中的$(document).ready方法未执行。

UPDATE1

<script type="text/javascript" lang="javascript">

    $(document).ready(function () {
        alert("test");
    });
</script>

1 个答案:

答案 0 :(得分:2)

尝试在捆绑包后添加内联脚本。此外,lang标记上的script属性已弃用:

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