Можно ли привязать коллекции к модели страницы в Razor Pages? - PullRequest
0 голосов
/ 14 октября 2018

У меня есть две коллекции, которые более или менее похожи на это:

[BindProperty]
public List<MyObject> MyObjects { get; set; } = new List<MyObject>();
[BindProperty]
public List<MyOtherObject> MyOtherObjects { get; set; } = new List<MyOtherObject>();

Так что они привязаны к серверу, но я не совсем уверен, как связать их с клиентом.Или я просто делаю это неправильно.Списки добавляются в таблицу HTML при загрузке страницы, но прямой привязки нет:

@foreach (var item in Model.MyObjects)
{
    <tr>
        <td>
            Title
        </td>
        <td>
            @Html.DisplayFor(m => item.Property)
        </td>
    </tr>
}

Проблема в том, что мне нужно POST на сервер, чтобы добавлять элементы в каждый список в разных точках.И когда я это делаю, я просто return Page();.Я не перенаправляю, потому что на данный момент ничего не сохраняется в базе данных, а форма не заполнена.

Насколько я знаю, у меня есть два варианта: перенаправить и передать данные взапросить строку или сохранить данные в файл cookie и заполнить каждый POST.

Оба варианта не являются хорошими.Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 14 октября 2018

Связывание модели предназначено для работы со значениями формы.Если вы не заполняете свои коллекции постоянными данными на сервере, вам нужно добавить поля формы для каждого элемента, чтобы привязка модели работала.Если вы создаете многошаговую, подобную мастеру форму, вы обычно сохраняете несохраненные значения каждого шага в скрытых полях от одного шага к следующему.

...