如何从Razor视图调用Javascript

如何从Razor视图调用Javascript,javascript,asp.net-mvc-3,razor,Javascript,Asp.net Mvc 3,Razor,如何从razor视图调用Javascript方法 起初我试过了 @if (TempData["myMessage"] != null) { @:displayMessage(); } 当呈现页面时,我在HTML页面上看到了“@:displayMessage() 于是我试了一下 @if (TempData["myMessage"] != null) { <script type="text/javascript">displayMessage();</scr

如何从razor视图调用Javascript方法

起初我试过了

@if (TempData["myMessage"] != null)
{ 
    @:displayMessage();
}
当呈现页面时,我在HTML页面上看到了“@:displayMessage()

于是我试了一下

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

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

当呈现页面的这一部分时,您试图调用的JavaScript将被调用。您的
displayMessage
函数可能会被加载,也可能不会被加载,这取决于您是否从单独的js文件加载,引用它的脚本源是否低于您尝试加载的当前脚本标记o从等处调用。您可以推迟调用,直到加载窗口,如下所示:

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

Razor是一种用于在网页中嵌入服务器代码的简单编程语法,您可以添加一个脚本在浏览器中执行该函数。这样做了。因此,调用javascript函数的正确方法似乎是使用脚本标记,而不是@:是,否则调用将被视为字符串文字,而不是脚本。