Я пытаюсь динамически добавлять элементы в свойство списка объекта с помощью Razor Pages. Я могу успешно добавить один элемент в список, но когда я пытаюсь добавить другой элемент, он теряет привязку и говорит, что свойство списка имеет значение null.
Остальная часть формы имеет обычные свойства string и int, которые установлены и сохраняются, как ожидалось. Однако, когда я пытаюсь управлять свойством списка, динамически добавляя новые строки с помощью вызова ajax, список обнуляется после первой (успешной) попытки.
Вызов ajax:
$("#btnAdd").on('click', function () {
$.ajax({
async: true,
headers: { 'RequestVerificationToken': $('input:hidden[name="__RequestVerificationToken"]').val() },
type: "POST",
url: '?handler=AddOrderItem',
success: function (partialView) {
$('#orderItemsContainer').html(partialView);
}
});
});
Метод PageModel:
public IActionResult OnPostAddOrderItem()
{
CurrentSample.SampleDistributions.Add(new SampleDistributionResource());
return Partial("SampleDistributionsPartial", CurrentSample);
}
Частичное представление:
@model QBSampleGenerator.Models.Resources.CreateSample
@for (int i = 0; i < @Model.SampleDistributions.Count(); i++)
{
<div class="form-group">
<label asp-for="@Model.SampleDistributions[i].DistributionAmount" class="control-label"></label>
<input asp-for="@Model.SampleDistributions[i].DistributionAmount" class="form-control" />
<span asp-validation-for="@Model.SampleDistributions[i].DistributionAmount" class="text-danger"></span>
</div>
}
Определение класса объекта CurrentSample:
public class CreateSample
{
public int SurveyId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int SampleSize { get; set; }
public int[] FilterIds { get; set; }
public IList<SampleDistributionResource> SampleDistributions { get; set; }
}
Сообщите мне если я забыл предоставить необходимую информацию. Заранее большое спасибо за любые советы!