如何从 Razor View 调用Javascript方法?

起初我尝试过

@if (TempData["myMessage"] != null)
{
    @:displayMessage();
}

当呈现页面时,我在HTML页面上确实看到了“@:displayMessage();”。

因此,我尝试了。
@if (TempData["myMessage"] != null)
{
    <script type="text/javascript">displayMessage();</script>
}

如果该html页面上存在displayMessage函数,则该方法有效。但是在我的情况下,displayMessage存在于单独的javascript文件中。 (该网页包含哪些内容)

最佳答案

当您呈现的页面的这一部分呈现时,将调用您尝试调用的JavaScript。您的displayMessage函数当时是否加载,取决于您是从单独的js文件中加载它,还是引用它的脚本源是否在您尝试从其调用的当前脚本标签下,等等。可以将调用推迟到窗口加载完成,如下所示:

@if (TempData["myMessage"] != null)
{
    <script type="text/javascript">
         window.onload = function () {
             displayMessage();
         };
    </script>
}

10-06 00:08