If checkbox is not checked, clicking on form submit button does not submit any data.
Some checkboxes may be not present in form depending on form fields selected by
This is a common issue with checkboxes in HTML forms and isn't unique to ASP.NET.
The answer is to have a hidden field that accompanies each checkbox. When the checkbox is modified, use a client-side event to update the hidden field.
The hidden field will always be submitted.
However, since you're using ASP.NET MVC, if you use the HTML.CheckBoxFor helper, it will handle this for you automatically.