Javascript 如何在ASP.NETMVC应用程序中正确放置脚本文件
我是MVC/.net新手,目前正在做一些简单的练习。我有这个javascript代码,我试图注册我的服务人员,但由于某种原因,它没有运行。我遵循了我能找到的所有教程,搜索了这个,但仍然不起作用。所以我在这里迷路了。谢谢你的帮助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">
@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
}