У меня есть таблица, в которой отображаются данные из моей базы данных. Я хочу предоставить кнопку, которая будет удалять данные из таблицы на основе выбранной строки. В частности, на основе значения конкретной ячейки этой таблицы.
Я пытался обернуть кнопку внутри элемента формы как дополнительный элемент внутри каждой строки, но, похоже, это не работает по двум причинам. 1, он запускает функцию OnGet () в моем контроллере, а 2, похоже, не привязывает значение данных ячейки к моему свойству SourceTable.
Вот моя таблица переднего плана:
<table class="table">
<thead>
<tr>
<td>OrderIdentifier</td>
<td>Step Number</td>
<td>CreateDate</td>
<td>Step Status</td>
<td>Source Table</td>
</tr>
</thead>
@foreach (var order in Model.order.Steps)
{
<tr>
<td>@order.OrderIdenfitier</td>
<td>@order.Name</td>
<td>@order.CreateDate</td>
<td>@order.StepStatus</td>
<td>@order.SourceTable</td>
<td>
<a class="btn btn-dark"
asp-page="./OrderDetail"
asp-route-orderId="@order.OrderIdenfitier">
<i class="glyphicon glyphicon-zoom-in"></i>
Details
</a>
</td>
<td>
<form method="delete">
<input type="hidden" class="form-control" asp-for="SourceTable" />
<button type="submit" class="btn btn-dark">
<i class="glyphicon glyphicon-zoom-in"></i>
Delete
</button>
</form>
</td>
</tr>
}
И на бэкэнде я хотел бы передать значение ячейки SourceTable любой строки, по которой нажимается кнопка, в эту функцию:
public IActionResult OnDelete(string SourceTable)
{
//Take SourceTable parameter, pass to data access layer, and delete from database.
return Page();
}
Я бы хотел, чтобы значение ячейки SourceTable было передано моей функции OnDelete, но этого не происходит. Кроме того, моя функция OnGet () срабатывает, когда я нажимаю кнопку удаления, а не функцию OnDelete (). Форма I, в которую я встроил кнопку, имеет action = "delete", поэтому я думаю, что она перейдет к функции OnDelete (), но, похоже, это не так.