0

我有一个视图,它为模型中的每个“单元”加载多个部分视图。如果用户更改了“评估”下拉列表中的选择,我需要使用正确的单位重新渲染部分。当页面加载时,它会加载以下内容:

                <div class="kt-portlet__body" id="unitSection" >
                    @if (Model.Units != null)
                    {
                        foreach (var unit in Model.Units)
                        {
                            Html.RenderPartial("UnitGapRow", unit);
                        }
                    }
                </div>

当用户更改下拉列表中的选择时,我正在进行 ajax 调用,如下所示:

        $('#AssessmentId').change(function (e) {
           var assessmentId = $(this).val();
           getUnits(assessmentId);
        });

    function getUnits(assessmentId) {
    $('#unitSection').html('');
    $.ajax({
        url: "@(Url.Action("GetRequirementUnits", "Config", new { area = "Competency" }))",
        data: {
            AssessmentId: assessmentId,
            RequirementId: "@Model.RequirementId"
        },
        type: "POST",
        success: function (data) {
            for (var unit in data) {
                $('#unitSection').append(@Html.RenderPartial("UnitGapRow",unit));
            }
        }
    })
}

除了为每个单元渲染部分内容外,一切正常。我尝试使用load方法,但它“替换”而不是“附加”每个部分。

非常感谢任何帮助。

4

1 回答 1

1

我能够用循环“链接”“load()”方法来渲染部分。自从load()替换后,我动态创建了div,附加到原来的div上,并使用动态创建的div调用了load方法:

    function getUnits(assessmentId) {
    $('#unitSection').html('');
    $.ajax({
        url: "@(Url.Action("GetRequirementUnits", "Config", new { area = "Competency" }))",
        data: {
            AssessmentId: assessmentId,
            RequirementId: "@Model.RequirementId"
        },
        type: "POST",
        success: function (data) {

            var i = 0;
            for (var x = 0; x < data.length; x++) {
                var unit = data[x];
                var unitId = unit.UnitId;
                $('#unitSection').append('<div id="div' + i + '"></div>');
                $('#div' + i).load('@Url.Action("GetRequirementUnit", "Config", new { area = "Competency" })?UnitId=' + unitId);
                i++;
            }
        }
    })
}

我希望这对其他人有帮助。

于 2021-06-04T16:04:26.987 回答