How To Get CheckBoxList Checked Values In ASP.NET MVC

Introduction

In this article we will learn how to get the CheckBoxList  checked values in a MVC controller . So lets start with step by step.
Step 1 : Create an MVC Application.
Now let us start with a step by step approach from the creation of simple MVC application as in the following:
  1. "Start", then "All Programs" and select "Microsoft Visual Studio 2015".
  2. "File", then "New" and click "Project..." then select "ASP.NET Web Application Template", then provide the Project a name as you wish and click on OK . 
 Step 2 : Add Model class
Right click on model folder of created MVC application project and add class named CityModel.cs or  as you wish

Now write the following code into the CityModel.cs class
CityModel.cs
public class CityModel
    {
            //Value of checkbox 
            public int Value { get; set; }
            //description of checkbox 
            public string Text { get; set; }
            //whether the checkbox is selected or not
            public bool IsChecked { get; set; }
        }
    public class CityList
        {
            //use CheckBoxModel class as list 
            public List<CityModel> Cities { get; set; }
        }
Step 2 : Add Controller
Right click on Controllers folder of created MVC application and click add empty Controller named HomeController.cs as

 Now create the generic list and add the records instead of going to database,however you can bind generic list from database but for example we added hard coded records.

HomeController.cs
public class HomeController : Controller
    {
        // GET: Home

        public ActionResult Index()
        {
            //Add Records into generic list
            List<CityModel> obj = new List<CityModel>()
           {
               new CityModel {Text="Latur",Value=1,IsChecked=false },
               new CityModel {Text="Mumbai",Value=2,IsChecked=true },
               new CityModel {Text="Pune",Value=2,IsChecked=false },
               new CityModel {Text="Noida",Value=2,IsChecked=false },
           };
            CityList objBind = new CityList();
            objBind.Cities = obj;
            return View(objBind);
        }
        //Post and get checkbox checked records
        [HttpPost]
        public ActionResult Index(CityList Obj)
        {
            StringBuilder sb = new StringBuilder();
            foreach (var item in Obj.Cities)
            {
               
                if (item.IsChecked)
                {
                    //append each checked records into StringBuilder
                    sb.Append(item.Text+",");

                }
              
               
            }
            //store location into viewbag
            ViewBag.Loc = "Your preferred work locations are "+ sb.ToString();
            //return location view to display checked records using viewbag
            return View("Locations");

        }
    public ActionResult Locations()
        {
            
            return View();

        }

    }
Step 3: Add View
Right click on View folder of created MVC application project and add empty view named
 Index.cshtml as
Now open the Index.cshtml view and write the following code into the view
@model BindStronglyTypedCheckBox.Models.CityList
@{
    ViewBag.Title = "www.compilemode.com";
}
<div class="form-horizontal">
    <h4>Select Preferred work location</h4>
    @using (Html.BeginForm())
    {
        for (int i = 0; i < Model.Cities.Count; i++)
        {

            @Html.CheckBoxFor(m => Model.Cities[i].IsChecked)
            @Model.Cities[i].Text
            @Html.HiddenFor(m => Model.Cities[i].Value)
            @Html.HiddenFor(m => Model.Cities[i].Text)<br />

        }
        <div class="col-md-offset-2 col-md-10">
            <input type="submit" value="Save" class="btn btn-default" />
        </div>
        @ViewBag.Loc
    }
</div>
Now everything is ready ,run the application then the check box list will be look like as follow

Now select Pune and Noida then output will be as follows
Now select Latur and Mumbai
From all above example we have learned how to get CheckBoxList checked values in ASP.NET MVC Controller.
 Note
  • Do a proper validation such as date input values when implementing.
  • In this example CheckBoxList bound using generic list however you can also bind it using database.
Summary
I hope this article is useful for all readers, if you have a suggestion then please contact me.

Post a Comment

www.CodeNirvana.in

Protected by Copyscape
Copyright © Compilemode