c# - 我如何在我的 ASP MVC 应用程序的 View 中调用 javascript 函数

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

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

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

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

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

它不会产生任何结果。

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

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

最佳答案

假设您的 item.Name 属性有一个字符串值 SomeThing。那么当 razor 呈现您的页面时,您生成的标记将是

<script> func(SomeThing) </script>

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

SomeThing is not defined

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

<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>

关于c# - 我如何在我的 ASP MVC 应用程序的 View 中调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35067798/

相关文章:

c# - 重新计算 RichTextBox 控件的宽度时遇到问题

c# - 异步/等待 : Unexpected behaviour of ConfigureAwait

asp.net-mvc - 在 asp.net mvc 中处理错误和异常

c# - ASP.NET MVC 3 Razor 性能

javascript - ASP.Net MVC 中的简单 Dropzone 实现 - 如何获取 Controller 中的数据?

c# - 使用服务器变量进行身份验证

c# - ASP MVC - Html.BeginForm 从没有区域的 Controller 的区域内

c# - 将 datetime2 数据类型转换为 datetime 数据类型会导致值超出范围

c# - AutoEventWireup 和 base.OnLoad(e) 调用 Self 导致 Stack Overflow

c# - 自定义 ASP.NET Web API 帮助页面的 "Resource Description"部分