【问题标题】:How to handle dynamic checkbox asp.net mvc 5如何处理动态复选框asp.net mvc 5
【发布时间】:2019-02-14 12:25:24
【问题描述】:

我有多个来自我的数据库的复选框。它看起来像Checkbox image。我想要的是,如果我选中一个或多个复选框,而不是选中和未选中的复选框值都会更新我的数据库。如果选中它会将活动更新为“1”或未选中将更新为“0”。

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

这是我准备复选框的代码。

如何在我的操作中编写代码来帮助我更新我的数据库。

如果需要更多信息,请告诉我。

【问题讨论】:

  • 建议您参考Pass List of Checkboxes into View and Pull out IEnumerable 以获取绑定到复选框列表的示例
  • 感谢您的参考,但这不是我要找的。​​span>
  • 是的!它向您展示了如何正确地将 2-way 模型绑定到您的模型
  • 假设我有 30 个不同值的复选框。我选择了其中的 20 个。当我提交时,这 20 个复选框将更新我的数据库 active = 1,其余 10 个未选中复选框将更新 active = 0
  • 是的,我知道 - 这正是链接中代码的作用!

标签: c# asp.net asp.net-mvc visual-studio-2015 asp.net-mvc-5


【解决方案1】:

@foreach(模型中的变量项){td>@Html.CheckBox("fileItem")@Html.Hidden("fileId",item.ID)}

在操作方法返回列表和视图中使用我上面提到的代码

【讨论】:

    【解决方案2】:

    你可以这样做,假设你有复选框,

        <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);
        }
    

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-16
      • 2014-03-26
      • 2011-01-29
      • 2011-01-15
      • 2018-07-03
      相关资源
      最近更新 更多