Количество списков моделей показывает 0 при отправке коллекции списков моделей из представления в контроллер- Asp Net MVC? - PullRequest
0 голосов
/ 15 января 2020

Мне нужно удалить выбранные строки. Здесь, когда я нажимаю на удаление, метод действия контроллера показывает 0 отсчетов для списка элементов модели. Ниже приведен мой код HTML и действия контроллера

@model IEnumerable<XonetPlus_V3.Admin.Models.Articles.ArticleDisplayViewModel>
@{
ViewData["Title"] = "Index"; 
}

@using (Html.BeginForm("deleteSelected", "Article", FormMethod.Post))
{
    <div class="col-md-12 m-t-30">
        <div class="card table-card">
            <div class="card-header">
                <h5>Articles</h5>
                <div class="card-header-right">

                   <input type="submit" value="delete" />
                </div>
            </div>
            <div class="card-block pages-block">
                <table>
                    <thead>
                        <tr>
                            <th>&nbsp;</th>
                            <th>Id</th>
                            <th>Title</th>
                            <th data-breakpoints="xs md">ModifiedBy</th>
                            <th class="action" data-breakpoints="xs md">Action</th>
                        </tr>
                    </thead>
                    <tbody>
                        @foreach (var item in Model)
                        {
                            <tr>
                                <td>
                                    <input type="checkbox" value="">
                                </td>
                                <td>
                                    @Html.DisplayFor(modelItem => item.Id)
                                </td>
                                <td>
                                    @Html.DisplayFor(modelItem => item.Title)
                                </td>
                                <td><p>@Html.DisplayFor(modelItem => item.ModifiedBy)</p></td>
                                <td class="action">
                                    <a class="mytooltip" asp-controller="Article" asp-action="edit" 
                                        asp-route-id="@item.Id">Edit=</a>
                                </td>
                            </tr>
                        }
                    </tbody>
                </table>
            </div>
        </div>
    </div>
}

Может кто-нибудь помочь мне найти эту проблему?

1 Ответ

1 голос
/ 16 января 2020

Вот рабочая демонстрация, как показано ниже:

1.Измените ваш <input type="checkbox" name="deleteIds" value="@item.Id">:

@foreach (var item in Model)
{
    <tr>
        <td>
            <input type="checkbox" name="deleteIds" value="@item.Id">
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Id)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
        <td><p>@Html.DisplayFor(modelItem => item.ModifiedBy)</p></td>
        <td class="action">
            <a class="mytooltip" asp-controller="Article" asp-action="edit"
                asp-route-id="@item.Id">Edit=</a>
        </td>
    </tr>
}

2.Контроллер:

[HttpPost]
public async Task<IActionResult> deleteSelected(int[] deleteIds)
{
    foreach(var id in deleteIds)
    {
        var article = await _context.Article.FindAsync(id);
        _context.Article.Remove(article);
        await _context.SaveChangesAsync();
    }
    return RedirectToAction(nameof(Index));
}

3.Результат : enter image description here

...