如何在MVC3视图中的foreach循环中调用JavaScript函数

3

我希望在ASP.NET MVC3视图中的C#代码中调用JavaScript函数,但不知道如何实现。我的代码如下:

JavaScript函数

function JK(){

   alert("Javascript Function Called From foreach");

  }

C# Foreach

foreach(var item in collection){ //I want to call JavaScript function here on every iterate.  
}

你最好使用jQuery,给你的DOM元素分配一个CSS类,并使用jQuery.each。 - lahsrah
4个回答

14

你可以使用类似这样的方法:

foreach (var item in collection) {
   <script type="text/javascript">
     JK();
   </script>
}

如果你需要在JavaScript代码中使用foreach,你应该只需使用<array>.forEach()。像这样:

<script type="text/javascript">
   @foreach (var item in collection) {
      <text>JK();</text>
   }
</script>

3
我会稍微以不同的方式实现它。
@foreach(var item in collection)
{
    <!-- some html element that will be generated on each loop cycle
    <input type="hidden" class="item"/>
}

然后通过/不通过第三方JavaScript库的帮助。
$(document).ready(function () {
    $('.item').each(function () {
        JK();
    }
});

1

你不能在视图中仅在服务器端调用JS函数。它会看起来像这样

@foreach(var item in collection)
{
  ...
  <script type="text/javascript">
     JK()
  </script>
  ...
}

输出的HTML将包含多个此JS函数的调用。


-2
调用 JavaScript 函数
   //C# Code
@Html.Raw("CallFunction('" + @param + "');");
    //C# code..

现在是关于JavaScript函数的部分。
<script type="text/javascript">
     CallFunction(param)
     {
       alert(param);
     }
  </script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接