我的视图页面中有以下JavaScript函数:
<script type="text/javascript">
function func(nam) {
alert(nam);
</script>
我在同一页面上调用此函数的视图代码如下所示:
@foreach (var item in Model)
{
<script>func(@item.name) </script>
}
它不会产生任何结果。
我需要在html中调用JavaScript函数,但它没有发生。请帮助我完成它。
还有其他调用JavaScript函数的方法吗?
答案 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>