如何从 Razor View 调用 Javascript

How to call Javascript from Razor View

如何从 razor 视图调用 Javascript 方法?

一开始我试过

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

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

然后我尝试了。

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

如果该 html 页面上存在 displayMessage 函数,则该方法有效。但是在我的例子中,displayMessage 存在于一个单独的 javascript 文件中。 (包含在此网页中)

您尝试调用的 JavaScript 将在呈现您正在呈现的页面的这一部分时被调用。您的 displayMessage 函数当时可能加载也可能不加载,具体取决于您是否从单独的 js 文件加载它,引用它的脚本源是否在您尝试从中调用它的当前脚本标记下方等。您可以推迟调用,直到 window 像这样加载:

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