У меня есть код ниже в моем файле GetCourseList.cshtml (просмотр), который показывает извлеченную информацию из базы данных:

@model IEnumerable<WebApplication8.Models.Courses>

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    <meta name="viewport" content="width=device-width" />
    <title>GetCourseList</title>
<style>
    .table thead th,
.table tbody td {
    text-align: center;
}
    </style>
</head>
<body>
    <table class="table table-striped">
        <thead>
            <tr>
                <th scope="col" class="border-top-0 text-center">course name</th>
                <th scope="col" class="border-top-0">unit</th>
                <th scope="col" class="border-top-0">term</th>
                <th scope="col" class="border-top-0">choose</th>
                <th scope="col" class="border-top-0"></th>
            </tr>
        </thead>
        <tbody>
            @foreach (var item in Model)
            {
            <tr>
                <td class="align-middle">@item.name</td>
                <td class="align-middle">@item.unit</td>
                @if (item.term == 0)
                {
                        <td class="align-middle">custom</td>
                    <td>
<input class="btn btn-success" type="checkbox" value=@item.name id=@item.course_id/>
</td>
                }
                else
                {
                    <td class="align-middle">@item.term</td>
                    <td><input  type="checkbox" value=@item.name id=@item.course_id /></td>
                }
                <td class="text-right align-middle">
                    @*<button type="button" class="btn btn-success">choose</button>*@
                </td>
            </tr>
            }
        </tbody>
    </table>
</body>
</html>

И я получаю ниже результат из этого представления, когда я запускаю проект:

enter image description here

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

Думаю, что я должен получить проверенные идентификаторы флажков со своей html-страницы (но я не знаю, как ?! пожалуйста, помогите мне!) и передать этот идентификатор действию, а затем выполнить запрос вставки в моем действии.

Итак: я должен передать каждый проверенный идентификатор флажка определенному контроллеру и собрать их (например, собрать все идентификаторы элементов в массиве), кто-то сказал мне, что я могу сопоставить свои элементы представления с этим массивом. но я не даю результата от этого подхода. это проблема! Пожалуйста, помогите мне узнать, как я могу это сделать. Спасибо

-1
ali shokrollahi 4 Янв 2020 в 01:40

1 ответ

Вы можете добавить свойство IsSelect в Model

Public bool IsSelect {get;set;}

И использовал

@Html.CheckBoxFor(m => m.IsSelect)

И на сервере проверил, какой из пунктов выбран

var idList = items.Where(x=>x.IsSelect).Select(x=>x.Id).ToList();
0
Mahdi Anjam 5 Янв 2020 в 18:49