I have checkboxes in my form
I added at my model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace CorePartners_Site2.Models
{
public class CareerForm
{
//....
public List<CheckBoxes> EmploymentType { get; set; }
}
}
public class CheckBoxes
{
public string Text { get; set; }
public bool Checked { get; set; }
}
and added at my form
@Html.CheckBoxFor(model => model.EmploymentType, new { id = "employmentType_1" })
@Html.CheckBoxFor(model => model.EmploymentType, new { id = "employmentType_2" })
@Html.CheckBoxFor(model => model.EmploymentType, new { id = "employmentType_3" })
but I get the mistake
What's wrong?
This question is related to
c#
.net
asp.net-mvc
asp.net-mvc-4
razor
If only one checkbox should be checked in the same time use RadioButtonFor instead:
@Html.RadioButtonFor(model => model.Type,1, new { @checked = "checked" }) fultime
@Html.RadioButtonFor(model => model.Type,2) party
@Html.RadioButtonFor(model => model.Type,3) next option...
If one more one could be checked in the same time use excellent extension: CheckBoxListFor:
Hope,it will help
Use this code:
@for (int i = 0; i < Model.EmploymentType.Count; i++)
{
@Html.HiddenFor(m => m.EmploymentType[i].Text)
@Html.CheckBoxFor(m => m.EmploymentType[i].Checked, new { id = "YourId" })
}
Html.CheckBoxFor
expects a Func<TModel, bool>
as the first parameter. Therefore your lambda must return a bool
, you are currently returning an instance of List<Checkboxes>
:
model => model.EmploymentType
You need to iterate over the List<Checkboxes>
to output each checkbox:
@for (int i = 0; i < Model.EmploymentType.Count; i++)
{
@Html.HiddenFor(m => m.EmploymentType[i].Text)
@Html.CheckBoxFor(m => m.EmploymentType[i].Checked,
new { id = string.Format("employmentType_{0}", i) })
}
Source: Stackoverflow.com