在MVC中使用多个复选框并将其值保存在数据库中

时间:2016-07-13 07:24:41

标签: asp.net-mvc asp.net-mvc-4

我添加了一个代码来从数据库中获取值以显示多个复选框,如下面的我的视图页所示

@{
    var dept_list = ViewBag.department_list;
}
@foreach (var dept_item in dept_list)
{
    <input type="checkbox" id="dept_checkbox" name="@dept_item.name" value="@dept_item.department_ID" />
    <span class="rmargin20">@dept_item.name</span>
}

现在我想获取已选中复选框的值,并希望将这些值保存到数据库中。上面提到的代码将为数据库中的每条记录生成复选框。

这可以在asp.net中完成。但是我想在MVC中实现这个功能。

2 个答案:

答案 0 :(得分:0)

您好您可以使用FormCollection获取表单值。 请参阅下面的示例代码:

    public ActionResult MethodName(FormCollection form)
                {
                    string CheckboxValue = form.Get("CheckBoxName_1"); //Dynamic checkbox name
                    return View();
                }

希望它可以帮助你:)

答案 1 :(得分:-1)

如果您的观点是强烈绑定,那么只需提交表单并使用上述解决方案获取检查值。

如果不是,则使用jquery保存选中的值。

为每个复选框使用一个类

<input type="checkbox" id="dept_checkbox" class="checkbox_dept" name="@dept_item.name" value="@dept_item.department_ID" />

<span class="rmargin20">@dept_item.name</span>

现在获取检查值

var selectedDepts == null;

     $('.checkbox_dept::checked').each(function (e) {
            selectedDepts += this.value + "^";
        });


           //ajax call
            $.post("../ControlerName/Save", { "strSelectedDepts": selectedDepts },
        function (data) {
                  //saved successfully
              }.fail(function (xhr, textStatus, errorThrown) {
                //Error occured 
            });

在控制器文件中。

[HttpPost]
public string Save(string strSelectedDepts)
 {
 //remove last ^ char
 string strData = strSelectedDepts.Substring(0, strSelectedDepts.Length - 1);

  string[] arrData = strData.Split('^');
  foreach(var itm in arrData)
   {
    //do save operation
    }
}
相关问题