【问题标题】:How to run javascript function from MVC View?如何从 MVC 视图运行 javascript 函数?
【发布时间】:2014-05-18 23:47:15
【问题描述】:

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

我希望这个 js 文件包含在名为 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(events) 函数忽略我的脚本。 错误:标识符 printCalendarCZ 在当前上下文中不存在。

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

感谢您的回复。

彼得

【问题讨论】:

  • 带有内容的script 标记不是有效的html。您应该有 2 个脚本标签,并将您的 src 放在一个中,将内容放在另一个中
  • 不,标签应该是同级的。在加载库后调用函数,以便在调用函数时定义函数。
  • 有一个不同的错误:C#标记@if和他的身体被识别为C#代码,我想调用javascript函数。我无法想象,有人可以将其编写为解决方案,如何从视图中调用 javascript 函数。我想在没有用户交互的情况下调用该函数,我想在页面加载后调用它。
  • 您正在调用同一个脚本文件 3 次?为什么?
  • 因为我认为它会忽略所有调用。我认为错误出在@if { //call } 内的javascript函数调用中,但有人上传了这个作为类似问题的解决方案。我想我必须使用window.onload(),但它也忽略了。

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


【解决方案1】:

直接使用脚本标签试试

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多