加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

剃刀 – 我应该在哪里包含视图组件的脚本?

发布时间:2020-12-16 03:55:26 所属栏目:asp.Net 来源:网络整理
导读:我试过在视图组件的视图中添加一个section脚本. @section scripts { script src="~/somepath" asp-append-version="true"/script} 我在共享布局中也有渲染部分 @RenderSection("scripts",required: false) 在部分视图和项目中的其他位置使用时,脚本加载正常.
我试过在视图组件的视图中添加一个section脚本.

@section scripts {
    <script src="~/somepath" asp-append-version="true"></script>
}

我在共享布局中也有渲染部分

@RenderSection("scripts",required: false)

在部分视图和项目中的其他位置使用时,脚本加载正常.但是,在View Component中,脚本不会加载.

我想我可以将脚本包含在调用组件的每个视图的section标签中.我觉得这不适合视图组件的自包含特性.

还有其他方法可以做到这一点吗?

解决方法

我在viewcomponents中也遇到了section标签的问题.事实证明,据我所知,在viewcomponents中没有它的支持.见 https://github.com/aspnet/Home/issues/2037

Jake Shakesworth实现了一个标签助手,如下所示:
Javascript in a View Component

另一方面,您可以将它作为一个包含在viewcomponent中

<script defer src"...">
  </script>

我的要求是从viewcomponent显示谷歌地图.问题是脚本是在jquery,jquery.ui之前调用的.
通过使用延迟,您告诉解析器在文档加载之前不执行它,从而避免了必须将其放入布局中以便正确执行的问题.
延迟由chrome,safari支持,即(10),ff(3.6),o(15)

希望这可以帮助

这是我的代码示例:

@using MobileVet.WebApp.Services;
@inject ISettingsService SettingsService
@{
     var Options = SettingsService.Value();

    <!--Service Area-->
    <div class="container-fluid">
         <div class="row p-3">
            <!--First column-->
            <div class="col-md-3">
                <h5 class="title">Site Navigation</h5>
                <ul>
                    <li><a href="#!">Home</a></li>
                    <li><a href="#!">Services</a></li>
                    <li><a href="#!">Link 3</a></li>
                    <li><a href="#!">Link 4</a></li>
                </ul> 

            </div>
            <!--/.First column-->
            <hr class="w-100 clearfix d-md-none">

            <!--Second column-->
            <div class="col-md-9">

                <div id="map-canvas" style="min-height: 300px; min-width: 200px;"> 
                </div>
            </div>
            <!--/.Second column-->

        </div>
    </div>
    <!--Service Area-->


<script src="http://maps.google.com/maps/api/js?key=XXXXXXXXXXXXXXXXXXXXXXX&sensor=false"></script>
<script type="text/javascript" src="~/js/components/servicearea.js" defer ></script>

}

请注意,如果视图组件在页面上出现多次,您可能需要编写一些逻辑来防止脚本被多次包含,这不是我的情况

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读