Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在ASP.NETMVC应用程序中正确放置脚本文件_Javascript_Asp.net Mvc - Fatal编程技术网

Javascript 如何在ASP.NETMVC应用程序中正确放置脚本文件

Javascript 如何在ASP.NETMVC应用程序中正确放置脚本文件,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我是MVC/.net新手,目前正在做一些简单的练习。我有这个javascript代码,我试图注册我的服务人员,但由于某种原因,它没有运行。我遵循了我能找到的所有教程,搜索了这个,但仍然不起作用。所以我在这里迷路了。谢谢你的帮助 @RenderSection("pageScripts", required: false) @section pageScripts{ <script type="text/javascript" language="javascript">

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

@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>
}
@RenderSection(“页面脚本”,必需:false)
@第页脚本{
log(“测试脚本”);
if(导航器中的“serviceWorker”){
register('/service worker.js')。
然后(功能(注册){
//注册成功
console.log('ServiceWorker注册成功,作用域:',registration.scope);
}).catch(函数(err){
//注册失败:(
console.log('ServiceWorker注册失败:',错误);
});
}
}

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

<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
另一方面,在布局文件中添加脚本的顺序

    ....   
    ....
   </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>
。。。。
....
@Scripts.Render(“~/bundles/jquery”)
@Scripts.Render(“任何第三方脚本”)
@Render(“整个应用程序所需的自定义脚本文件”)
//在此处添加任何与布局页面相关的脚本
@RenderSection(“页面脚本”,必需:false)
现在,如果特定视图只需要脚本,则

例如:Index.csthml

...
</div>

@section pageScripts
{
  // Your script logic
}
。。。
@第页脚本
{
//您的脚本逻辑
}

你在浏览器控制台中看到了什么?@Shyju什么都没有。
控制台.log
甚至没有打印测试字符串。这些代码写在哪里?内部视图?相同视图?布局页面?局部视图?请共享你的完整代码。你在哪个文件中调用
@RenderSection(“页面脚本”,必需:false)
?我尝试了你的代码,在
\u Layout.cshtml
文件中使用了
@RenderSection(“pageScripts”,必填项:false)
,在
Index.chtml
中使用了
@部分
控制台.log
调用对我有效。@JasonEvans将这些代码放在
\u Layout.cshtml
标记之前
...
</div>

@section pageScripts
{
  // Your script logic
}