JavaScript 在 Razor C# 中调用

JavaScript call in Razor C#

我正在尝试在 Razor 的辅助方法中调用 javascript 函数。我的代码看起来像这样:

@helper MyMethod() 
{
     for (int i = 0; i < 5; i++)
     {
          drawMe(i)
     }
}

drawMe 函数在正确包含的外部 js 文件中声明。我尝试使用 Html.Raw 用标签围绕它,但到目前为止没有任何效果。任何帮助将不胜感激。

谢谢

@helper MyMethod() 
{
     for (int i = 0; i < 5; i++)
     {
          <text><script type="text/javascript">drawMe(@i)</script></text>
     }
}

如果你想像这样执行javascript,你需要将它包裹在一个脚本标签中。在下面的示例中,您的助手将脚本标记输出到页面,并且 javascript 是一个 for 循环。但是,这对您不起作用的原因可能是其他原因。当您输出这样的脚本时,浏览器会立即执行它,一旦它在 DOM 中检测到它。但是,您的外部文件可能尚未加载。

@helper MyMethod() 
{
    <script type="text/javascript">

         for (var i = 0; i < 5; i++)
         {
              drawMe(i);
         }

     </script>
}

所以为了安全起见,您可能希望推迟执行 javascript,直到页面完成所有脚本的加载:

@helper MyMethod() 
{
    <script type="text/javascript">

        window.onload = function()
        {
            for (var i = 0; i < 5; i++)
            {
                 drawMe(i);
            }
        }


     </script>
}