Как обрабатывать динамический флажок asp.net mvc 5

У меня есть несколько флажков из моей базы данных. как это выглядит Изображение флажка. Я хотел, чтобы если я установил один или несколько флажков, то значения флажков, отмеченных и снятых, обновили мою базу данных. Если этот флажок установлен, он будет обновляться как активный как «1», или если флажок снят, он будет обновляться как «0».

<input class="form-check-input" value="@dt["MNUD_TEXT"]" ID="@dt["MNUD_TEXT"]" type="checkbox" name="Data"  >

Это код, который я готовлю для флажка.

Как я могу написать код в моем действии, который поможет мне обновить мою базу данных, как указано.

Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

Предлагаю сослаться на Передать список флажков в представление и вытащить IEnumerable для примера привязки к списку чекбоксов

user3559349 10.09.2018 07:26

Спасибо за ссылку, но это не то, что я ищу.

Nurat Jahan 10.09.2018 07:50

Да, это так! Он показывает вам, как правильно привязать двухстороннюю модель к вашей модели.

user3559349 10.09.2018 07:52

предположим, у меня есть 30 флажков с разными значениями. Я выбрал 20 из них. Когда я отправлю эти 20 флажков, моя база данных будет обновлена ​​active = 1, а остальные 10, снятые флажки, обновят active = 0

Nurat Jahan 10.09.2018 07:53

Да, я знаю - именно это и делает код в ссылке!

user3559349 10.09.2018 07:54

Ох, ладно . Я стараюсь ..............

Nurat Jahan 10.09.2018 08:00
0
6
865
2

Ответы 2

@foreach (элемент var в модели) {td> @ Html.CheckBox ("fileItem") @ Html.Hidden ("fileId", item.ID)}

В списке возврата метода действия и в представлении используйте код, который я упоминал выше

Вы можете сделать это, скажем, у вас есть флажок, например,

    <input class="form-check-input" value="@dt["MNUD_TEXT"]" D="@dt["MNUD_TEXT"]" type="checkbox" name="Data" class="clsChkFromDB">

Теперь вам нужно привязать событие изменения флажка, используя селектор ".clsChkFromDB" и событие изменения флажка. вам нужно отправить запрос ajax, который обновит значение флажка в базе данных,

        $(function () {
            //Bind on change event with .clsChkFromDB(Checkbox)
            $("#formId").on("change", '.clsChkFromDB', function () {
                updateValue(this.id, this.checked);
            });
        });


        function updateValue(chkId, chkValue) {
            try {
                var strUrl = '@Url.Action("UpdateValue", "ControllerName")';

                var dataObject = JSON.stringify({
                    "chkId": chkId,
                    "chkValue": chkValue
                });

                $.ajax({
                    url: strUrl,
                    type: 'POST',
                    data: dataObject,
                    async: true,
                    contentType: 'application/json',
                    success: function (result) {
                        //Do some action on success
                    },
                    complete: function (result) {
                        //Do some action on complate
                    },
                    error: function (err) {
                        console.error(err);
                    }
                });

            } catch (error) {
                console.error(e);
            }
        }

И, наконец, вы должны написать действие в своем контроллере,

    [HttpPost]
    public JsonResult UpdateValue(string chkId, string chkValue)
    {
        dynamic result = string.Empty;

        try
        {
            //Code to update value in DB
            result = new
            {
                message = "",
                StatusCode = HttpStatusCode.OK
            };

        }
        catch (Exception ex)
        {
            result = new
            {
                message = ex.Message,
                StatusCode = HttpStatusCode.InternalServerError
            };
        }
       return Json(returnResult);
    }

Другие вопросы по теме