【问题标题】:.Net MVC, how to call Javascript function in external Javascript file from partial view.Net MVC,如何从部分视图调用外部Javascript文件中的Javascript函数
【发布时间】:2017-08-09 04:59:39
【问题描述】:

我有一个局部视图,我想调用一个驻留在外部 Javascript 文件中的 jQuery 函数。我知道部分视图可能会在父视图上多次呈现,我对此表示满意。对于我们的例子,局部视图在任何情况下都只渲染一次。我在 Partial View 的父级中调用外部 Javascript 文件引用。

我有一个包含函数的外部 Javascript 文件“global.js”。

  //function in global.js
  function myFunction(){alert("hello");}

在我的部分视图中,我有一个脚本标签,我想在 global.js 文件中调用“myFunction”函数。

   <script>myFunction();</script>

应该是非常标准的东西,但是当我尝试从 Chrome 开发者控制台的局部视图中调用“myFunction()”时,我发现 myFunction() 没有定义。就像我提到的,它在局部视图的父级中调用,但似乎局部视图不知道外部 Javascript 文件存在。

有什么建议吗?

【问题讨论】:

  • 如果这个 global.js 在默认模板中声明,它应该可以工作
  • 你能显示呈现的html代码吗?

标签: javascript asp.net-mvc asp.net-mvc-4 partial-views


【解决方案1】:

这是因为你的脚本文件是在你的局部视图之后加载的

类似

<head>
<body>
Your Partial view 
script inside partial view 

@juqry render (inculding global js)
</body>

要解决这个问题,最好的办法是在你的 _layout 的 head 部分渲染 @script.Render()

【讨论】:

    【解决方案2】:

    检查您的脚本是否出现在您的渲染文件中声明 global.js 之后。

    假设您使用的是标准模板,您应该能够将脚本部分放在 mvc @section 中的局部视图中;

    @section Scripts{
        <script>
             myFunction();
    
        </script>
    
    } 
    

    MVC 会将这段代码放在

    @RenderSection("script", required:false) 
    

    出现在您的 _layout.cshtml 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2017-02-19
      • 2021-05-07
      • 2013-09-15
      • 2011-02-25
      相关资源
      最近更新 更多