У меня есть стандартная страница Razor, в которой перечислены все заказы в моей базе данных. Это закодировано довольно стандартно: IList<Order>
свойство связывания в модели страницы, OnPost метод. Однако каждая из записей в таблице имеет столбец с элементом select , который показывает текущее состояние заказа, и кнопку , чтобы сохранить новый статус, если пользователь решит: Измени это. Сортировка встроенного редактирования статуса для каждой строки.
Итак, на моей странице есть цикл foreach , который перебирает все мои заказы:
@foreach (var item in Model.Orders)
{
<tr><td>...</td></tr>
<tr>
<td>
<form method="post" class="form-inline">
<input type="hidden" value="@item.Id"/>
<select asp-for="@item.OrderStatusId"
class="form-control form-control-sm"
asp-items="ViewBag.OrderStatusId"></select>
<button type="submit" class="btn btn-secondary btn-sm">
<i class="fas fa-save"></i>
</button>
</form>
</td>
</tr>
}
Как видите, последний столбец представляет собой форму . Что я хочу сделать, так это иметь возможность отправить в мой метод OnPost идентификатор заказа (скрытый вход элемент в форме) и выбранное состояние ( выберите в элементе формы). Однако эти параметры всегда отображаются как нулевые в методе. Я предполагаю, что это как-то связано с тем фактом, что, поскольку существует несколько элементов asp-for для одного и того же имени свойства (по одному для каждой формы - каждого заказа / строки), Razor запутывается и не делает Не знаю, кого отправить.
Есть ли способ обойти это?