在Dropdownlist中的选择后附加多个PartialViews



我有一个视图,它为每个";单位";在模型中。如果用户改变了";评估";dropdownlist,我需要用正确的单位重新渲染部分。当页面加载时,会加载以下内容:

<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方法;替换";与";附加";每个部分。

我们非常感谢任何协助。

我能够"链"加载((";方法,以便渲染部分。由于load()替换了,我动态地创建了div,附加到原始div,并使用动态创建的div来调用加载方法:

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++;
}
}
})
}

我希望这能帮助其他人。

最新更新