【问题标题】:How to call Javascript from Razor View如何从 Razor 视图调用 Javascript
【发布时间】:2015-11-11 14:15:11
【问题描述】:

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

一开始我试过

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

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

然后我尝试了。

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

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

【问题讨论】:

  • Razor 是一种用于在网页中嵌入服务器代码的简单编程语法,您可以在浏览器中添加脚本来执行该功能。

标签: javascript asp.net-mvc-3 razor


【解决方案1】:

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

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

【讨论】:

  • 做到了。所以看起来调用javascript函数的正确方法是使用脚本标签而不是@:
  • 是的,否则调用将被视为字符串文字而不是脚本。
猜你喜欢
  • 1970-01-01
  • 2020-05-01
  • 1970-01-01
  • 2018-02-23
  • 1970-01-01
  • 2017-08-13
  • 2014-12-31
  • 2019-06-10
  • 2015-02-19
相关资源
最近更新 更多