如何从MVC View运行javascript函数?

时间:2014-04-06 21:51:59

标签: javascript asp.net-mvc razor asp.net-mvc-5

我已经尝试了我在互联网上找到的所有内容,但没有任何效果。我有一个名为calendarCZ.js的外部javascript文件,相对路径为:〜/ Scripts / calendarCZ.js。

我希望这个js文件包含在我的View中,名为getSideBar.cshtml。

我在Layout.cshtml中写了这个:

@Scripts.Render("~/Scripts/calendarCZ.js")
@RenderSection("Scripts", required: false)

我在getSideBar.cshtml中写了这个:

Scripts.Render("~/Scripts/calendarCZ.js")
@RenderSection("Scripts", required: false)
@section Scripts{
    <script src="@Url.Content("~/Scripts/calendarCZ.js")">
        @Scripts.Render("~/Scripts/calendarCZ.js")
        @if (ViewBag.JS == true)
        {
            printCalendarCZ(@Model.events);
        }
    </script>

}

他还在使用printCalendarCZ(事件)函数忽略我的脚本。 错误:标识符printCalendarCZ在当前上下文中不存在。

有没有人真的知道如何在MVC 5中包含javascript?

感谢您的回复。

彼得

2 个答案:

答案 0 :(得分:0)

直接尝试使用脚本标记

<script src="@Url.Content("~/Scripts/calendarCZ.js")"></script>

//take the relative path
<script src="../Scripts/calendarCZ.js" type="text/javascript"></script>

答案 1 :(得分:0)

有两种方法可以做到这一点。

@Scripts.Render("~/Scripts/calendarCZ.js")
<script type="text/javascript">

    $(function () {

        @if (ViewBag.JS == true)
        {
            @:printCalendarCZ(@Model.events);
        }

    });
</script>

@Scripts.Render("~/Scripts/calendarCZ.js")
<script type="text/javascript">

    $(function () {

        var jsValue = @ViewBag.JS;
        if (jsValue == true) {
            printCalendarCZ(@Model.events);
        }

    });
</script>

并且不要忘记包含jquery。