在剃须刀内调用外部 js 函数

call external js function within razor

我有这个代码:

Html.RequiresJs("~/Scripts/site/scripts.app.js", 5);
@{

if (String.IsNullOrEmpty(stringQueryElement) && !upcoming.Any())
    {   
        <script type="text/javascript">
            X();
        </script>
    }
}

scripts.app.js 文件中,我有一个函数 X(),当我的 if 语句为真时,我想调用它。我怎么称呼它?因为我现在的语法不起作用。 进行了一些调试,我可以看到 IF 语句工作正常。唯一的问题是如何调用存储在 scripts.app.js.

中的函数

提前感谢您的帮助。

正如您的评论所述,您的 scripts.app.js 是在 </body> 之前注入的。这意味着脚本的功能在 由浏览器评估后可用。因为您尝试 运行 您的脚本 发生之前,它不会检测到您的 X() 函数。

使用 document ready 确保所有脚本都被评估:

if (String.IsNullOrEmpty(stringQueryElement) && !upcoming.Any())
    {   
        <script type="text/javascript">
            $(function() {
                X();
            });
        </script>
    }
}

(假设您使用的是 jQuery)