javascript - 如何在 ASP.Net MVC 应用程序中正确放置脚本文件

标签 javascript asp.net-mvc

我是 MVC/.net 新手,目前正在做一些简单的练习。我有这个 javascript 代码,我尝试在其中注册我的服务 worker ,但由于某种原因,它没有运行。我遵循了我能找到的所有教程,对此进行了搜索,但仍然不起作用。所以我在这里迷路了。感谢您的帮助。

@RenderSection("pageScripts", required: false)
@section pageScripts{
    <script type="text/javascript" language="javascript">

        console.log('test script');

        if ('serviceWorker' in navigator) {
            navigator.serviceWorker.register('/service-worker.js').
                then(function (registration) {
                    // Registration was successful
                    console.log('ServiceWorker registration successful with scope: ', registration.scope);
                }).catch(function (err) {
                    // registration failed :(
                    console.log('ServiceWorker registration failed: ', err);
                });
        }

    </script>
}

最佳答案

假设您编写的脚本逻辑是 LayOut 文件所需的,您需要将代码替换为以下内容:

<script type="text/javascript" language="javascript">

            console.log('test script');

            if ('serviceWorker' in navigator) {
                navigator.serviceWorker.register('/service-worker.js').
                    then(function (registration) {
                        // Registration was successful
                        console.log('ServiceWorker registration successful with scope: ', registration.scope);
                    }).catch(function (err) {
                        // registration failed :(
                        console.log('ServiceWorker registration failed: ', err);
                    });
            }

        </script>
    @RenderSection("pageScripts", required: false) // NOTICE IT HAS COME DOWN

请注意:如果您在布局文件中,则不需要添加

@section pageScripts{
}

顺便说一句,在布局文件中添加脚本的顺序

    ....   
    ....
   </div>
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("Any Third Party Script") 
    @Scripts.Render("Your own Custom Script file Required By Entire Application")
    <script>
       // ADD ANY Script related to LayOut Page here
        </script>
     @RenderSection("pageScripts", required: false)
</body>
</html>

现在,如果特定 View 专门需要脚本,那么..

例如:Index.csthml

...
</div>

@section pageScripts
{
  // Your script logic
}

关于javascript - 如何在 ASP.Net MVC 应用程序中正确放置脚本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46380552/

相关文章:

javascript - Wordpress - 在编辑器中插入 html/文本

javascript - Sencha 模板 (tpl) 具有特殊条件,隐藏或不隐藏

asp.net-mvc - 无法使用 smtpclient 通过 localhost iis 站点发送邮件

javascript - 从 JavaScript 正确调用 Controller - ASP.NET MVC

asp.net-mvc - 如何在 EF 中处理子级更新

javascript - 无法在放大的弹出窗口内使用 AJAX 提交表单

javascript - 水平滚动的背景图像

javascript - 为 getter 提供默认值,而不会导致 Angular 2 模型类中的堆栈溢出

c# - 如何将自定义对象从异步操作过滤器传递到 ASP.net Core 中的 Controller ?

c# - 如何使用 C# 桌面应用程序登录 ASP.NET 加密的用户名/密码