我如何在ASP MVC应用程序的视图中调用javascript函数

时间:2016-01-28 17:14:27

标签: c# asp.net asp.net-mvc razor

我的视图页面中有以下JavaScript函数:

<script type="text/javascript">
  function func(nam) {
    alert(nam);
</script>

我在同一页面上调用此函数的视图代码如下所示:

@foreach (var item in Model)
{
  <script>func(@item.name) </script>
}

它不会产生任何结果。

我需要在html中调用JavaScript函数,但它没有发生。请帮助我完成它。

还有其他调用JavaScript函数的方法吗?

1 个答案:

答案 0 :(得分:8)

假设您的item.Name属性的字符串值为SomeThing。因此,当剃刀渲染您的网页时,您生成的标记将为

<script> func(SomeThing) </script>

现在javascript引擎认为SomeThing是一个js变量。但是我们没有一个js变量,该名称已定义并在之前初始化。所以你可能会看到一个脚本错误说

  

未定义SomeThing

您需要将参数作为字符串文字传递。用单引号或双引号括起来。

<script>func('@item.name') </script>

此外,您需要确保在尝试执行该方法之前定义了func javascript方法。

<script>    
    function func(nam) {
        alert(nam);
    }
</script>

<script>func('@item.Name') </script>

如果函数在外部js文件中,则需要确保在执行方法之前包含/加载它。

<script src="~/Scripts/YourJsFileWherFuncIsDefined.js"></script>
<script>func('@item.Name') </script>