Joh*_*Doe 5 javascript razor asp.net-mvc-3
如何从剃刀视图调用 Javascript 方法?
起初我试过
@if (TempData["myMessage"] != null)
{
@:displayMessage();
}
Run Code Online (Sandbox Code Playgroud)
当页面呈现时,我从字面上看到了“@:displayMessage(); 在我的 HTML 页面上。
所以我尝试了。
@if (TempData["myMessage"] != null)
{
<script type="text/javascript">displayMessage();</script>
}
Run Code Online (Sandbox Code Playgroud)
如果该 html 页面上存在 displayMessage 函数,则该方法有效。但是,在我的情况下, displayMessage 存在于单独的 javascript 文件中。(包含在此网页中)
当您正在渲染的页面的这一部分被渲染时,您尝试调用的 JavaScript 将被调用。您的displayMessage函数当时可能会加载,也可能不会加载,具体取决于您是否从单独的 js 文件加载它,引用它的脚本源是否位于您尝试调用它的当前脚本标记下方,等等。您可以推迟调用直到窗口加载完毕,如下所示:
@if (TempData["myMessage"] != null)
{
<script type="text/javascript">
window.onload = function () {
displayMessage();
};
</script>
}
Run Code Online (Sandbox Code Playgroud)