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:
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
Step 2 : Add Controller
Right click on Controllers folder of created MVC application and click add empty Controller named HomeController.cs as
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:
- "Start", then "All Programs" and select "Microsoft Visual Studio 2015".
- "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 .
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; } }
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(); } }
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 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
Summary
- 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.
I hope this article is useful for all readers, if you have a suggestion then please contact me.
Post a Comment