Обработчик OnPostDelete не работает для страницы модели индекса - PullRequest
0 голосов
/ 27 мая 2020

Кажется, что моя страница модели индекса в порядке, т.е. Index.cs html и Index.cs html .cs для вызова OnPostDelete. Но кнопка удаления не вызывает обработчик OnPostDelete. Если я изменю OnPostDelete на OnGetDelete, он будет работать, но не с OnPostDelete. Даже я пробовал с form method = "Post". Вот фрагмент кода для

<div>

@if (Model.ServiceTypes.Count == 0)
{
    <p>No Service Type Defined.Please create the service type</p>
}
else
{
        <table class="table table-striped border">
            <tr class="table-secondary">
                <th>
                    @Html.DisplayNameFor(m => m.ServiceTypes[0].Name)
                </th>
                <th>
                    @Html.DisplayNameFor(m => m.ServiceTypes[0].Price)
                </th>
                <th></th>
                @foreach (var item in Model.ServiceTypes)
                {
                <tr>
                    <td>
                        @Html.DisplayFor(m => item.Name)
                    </td>
                    <td>
                        @Html.DisplayFor(m => item.Price)
                    </td>
                    <td style="width:150px;">
                        <div class="btn-group" role="group">
                            <a class="btn btn-primary text-white" asp-page="Edit" asp-route-Id="@item.Id">
                                <i class="far fa-edit"></i>
                            </a>
                            <a class="btn btn-success text-white" asp-page="Details" asp-route-Id="@item.Id">
                                <i class="fas fa-list"></i>
                            </a>
                            <a class="btn btn-danger text-white"  asp-page="Index" asp-page-handler="Delete" asp-route-Id="@item.Id">
                                <i class="fas fa-trash"></i>
                            </a>
                        </div>
                    </td>
                </tr>
            }
            </table>
    }
</div>

и соответствующий код для обработчика действия

 public async Task<IActionResult> OnGetDelete(int Id)
        {
            var ServiceTypefromDb = await _db.ServiceType.FindAsync(Id);
            if (ServiceTypefromDb == null)
            { 
                return NotFound();
            }
            _db.ServiceType.Remove(ServiceTypefromDb);
            await _db.SaveChangesAsync();

            return RedirectToPage("./Index");
        }
...