I am trying to retrieve the checked checkbox value from a checkbox list without any success , below is the code which i have tried:
Model
[DisplayName("Gender")]
public IList<SelectListItem> Gender { get; set; }
Controller
public ActionResult Index()
{
AssociateFormViewModel objStudentModel = new AssociateFormViewModel();
List<SelectListItem> genderNames = new List<SelectListItem>();
genderNames.Add(new SelectListItem { Text = "Male", Value = "1" });
genderNames.Add(new SelectListItem { Text = "Female", Value = "2" });
genderNames.Add(new SelectListItem { Text = "Prefer not to say", Value = "3" });
objStudentModel.Gender = genderNames;
return PartialView("AssociateApplicationForm", objStudentModel);
}
[HttpPost]
public ActionResult HandleFormSubmit(MembershipFormViewModel model)
{
//model not valid, do not save, but return current umbraco page
if (ModelState.IsValid == false)
{
return CurrentUmbracoPage();
}
string test = "Gender: " + model.Gender + Environment.NewLine; //getting null here
return RedirectToCurrentUmbracoPage();
}
View
@foreach (var names in @Model.Gender)
{
var checkBoxId = "chk" + names.Value;
var tdId = "td" + names.Value;
<table width="100%">
<tr >
<td width="20px">
<input type="checkbox" id="@checkBoxId" class="chkclass" value="@names.Value" />
</td>
<td id="@tdId" width="100px">
@names.Text
</td>
</tr>
</table>
}
Any ideas where i am getting it wrong the selected checkbox value is coming null in the post action, Also how can i limit the user to select only one check box,
Any help or suggestion will be appreciated . Thanks
Select Web from the left panel, choose ASP.NET Web Application, give a meaningful name of your project and then click on OK. After clicking on OK, one more window will appear. Choose Empty check on MVC checkbox and click on OK.
assign a name to your checkbox:
<input name="gender" type="checkbox" id="@checkBoxId" class="chkclass" value="@names.Value" />
Then accept a string array of with parameter name gender
[HttpPost]
public ActionResult HandleFormSubmit(string[] gender,
MembershipFormViewModel model)
{
//model not valid, do not save, but return current umbraco page
if (ModelState.IsValid == false)
{
return CurrentUmbracoPage();
}
string test = "Gender: " + model.Gender + Environment.NewLine; //getting null here
return RedirectToCurrentUmbracoPage();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With