部分视图无法识别包含在父级中的Javascript文件

问题描述

我正在使用asp .net core 3,我通过javascript添加了多个部分

function AddBill(type)
        { tag = "....."; // some div and a tags
                $.get('/Glasses/displayFarBill?index=' + farIndex,function (partial) {
                                $('#FarSightedBillsSection').append(tag);
                                $('#farSighted' + farIndex).append(partial);
                                $('#farSighted' + farIndex).collapse('show');
                                farIndex++;
                            });
}

在主页上,我包含一些js文件,一些部分视图元素可以使用该文件

<link rel="stylesheet" href="~/lib/md.bootstrappersiandatetimepicker/dist/jquery.md.bootstrap.datetimepicker.style.css" />
<script src="~/lib/md.bootstrappersiandatetimepicker/dist/jquery.md.bootstrap.datetimepicker.js" type="text/javascript"></script>

但是当我使用javascript添加部分视图时,它无法识别该js文件,但是当我使用代码添加该部分视图时(我的意思是局部标签),它将识别出该文件

我不想将其包含在Partial中,因为我有多个partial实例。

解决方法

这是一个演示作品:

控制器:

public IActionResult GetPartial()
        {
            return PartialView("_Partial");
        }
        public IActionResult TestPartial()
        {
            return View();
        }

_Partial(局部视图):

<input type="text" data-provider="datepicker" class="datepicker" style="width:200px;" />

TestPartial(主页):

<h1>TestPartial</h1>
<div id="items">

</div>

    @section Scripts{
    
        <link rel="stylesheet" href="~/lib/DatetimePicker/dist/datetimepicker.css" />
        <script src="~/lib/DatetimePicker/dist/datatimepicker.js"></script>
       
        <script type="text/javascript">
            $(function () {
                getPartial();
            })
            function getPartial() {
                $.ajax({
    
                    url: '/Test/GetPartial',dataType: 'html',success: function (newItem) {
                        $(newItem).appendTo($('#items'));
                        $('.datepicker').MdPersianDateTimePicker({
                            dateFormat: 'yyyy-MM-dd',isGregorian: false,enableTimePicker: true
                        });
                    }
                })
    
            }
    
        </script>
    }

结果: enter image description here

如果无法识别它,可以尝试使用F12检查Console,是否在控制台中有任何错误?并检查Network css和js的状态是否为200? enter image description here enter image description here

您可以将css和js放在_Layout.cshtml中,如下所示: enter image description here

enter image description here