【问题标题】:How to include js files in the view. ASP.NET MVC 4如何在视图中包含 js 文件。 ASP.NET MVC 4
【发布时间】:2014-07-15 16:30:35
【问题描述】:

我想知道为什么我的js文件在视图中调用它时工作:

@section Scripts {  
<script>   

    function myFunction() {
        alert("Hello1");
    }       

</script>
}

但是当我调用它时不起作用:

@section Scripts {

   <script type="text/javascript" src="~/Views/Home/script.js"></script>
   <script>   
         myFunction();
    </script>
}

【问题讨论】:

  • 这两个看起来像Razor 文件?顶部文件是_Layout,第二个是使用布局的视图吗?
  • 我正在视图中工作。但是对于“@section Scripts”,我希望脚本在浏览器中运行时放置在 _Layout 中。谢谢。

标签: javascript asp.net-mvc-4


【解决方案1】:

这是因为在~/Views/ 文件夹中无法访问.js 文件。你必须enable it

要启用对 Views 文件夹中 .js 文件的访问,您可以将以下内容直接添加到您的 Views 文件夹的 web.config 中的 handlers 标记下:

<add name="JavaScriptHandler"
         path="*.js"
         verb="*"
         preCondition="integratedMode"
         type="System.Web.StaticFileHandler" />

或者将您的脚本放入~/Scripts/ 文件夹并像这样引用它:

@Scripts.Render("~/Scripts/script.js")

【讨论】:

  • 只是一个旁注...我实际上把我的脚本放在 Views 文件夹中。我做了类似Views/Home/Contact.cshtml 并嵌套在Visual Studio 中的文件下面(使用NestIn 扩展名)我有Views/Home/Contact.jsViews/Home/Contact.less。然后我的构建脚本会适当地提取文件。这样做实际上可以节省大量时间。
  • 大卫,你能详细说明你的构建脚本是做什么的吗?我也喜欢这个主意,我花了很多时间苦苦寻找相关文件...
  • @codea 抱歉,这令人困惑。由于我有一个构建脚本来缩小和连接我的脚本,而不是让它在脚本文件夹中搜索脚本——~/Scripts/**/*.js——而是搜索视图文件夹——~/Views/**/*.js,因为它们现在存储在那里。
【解决方案2】:

最好将 Js 文件放在 Script 文件夹中并从那里访问它。您可以在视图的头部编写此代码以使用 js 文件

@Scripts.Render("~/Scripts/script.js")

【讨论】:

    【解决方案3】:

    您必须在 Bundle 配置中添加您的脚本:

     public static void RegisterBundles(BundleCollection bundles)
            {
                bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                            "~/Scripts/jquery-{version}.js",    "~/Views/Home/script.js"));
    

    这对我有用

    【讨论】:

      【解决方案4】:

      您应该将渲染部分添加到您的视图使用的布局页面。

      @RenderSection("scripts", required: false)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-05
        • 2012-04-26
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 2011-12-18
        • 2010-09-19
        相关资源
        最近更新 更多