Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Checkbox not working with boolean viewmodel property

Tags:

I am using MVC6 and have a checkbox input field in my form, but when the form is submitted the value for the checkbox always gets passed to the ViewModel as false:

Here is how the property is declared in my ViewModel:

[Display(Name = "Include Sales Tax")] public bool IncludeSalesTax { get; set; } 

Here is how the form looks in my MVC6 razor form:

<div class="form-group">     <div class="checkbox">         <label><input asp-for="IncludeSalesTax" type="checkbox" value="">@Html.DisplayNameFor(m => m.IncludeSalesTax)</label>     </div> </div> 

I figured the above would be the best way to follow Twitter Bootstrap standards and use the ASP.NET MVC6 asp-for tag for model binding.

When I submit the form the value for IncludeSalesTax is always false, even when checked. What am I doing wrong?

like image 953
Blake Rivell Avatar asked Feb 16 '16 15:02

Blake Rivell


1 Answers

input type checkbox sends an "on" if it is set. Otherwise it is not sent. It is important, that you set the value attribute to true. In this case it sends true or nothing, which is perfect to bind to a boolean.

<input type="checkbox" name="yourPropertyName" value="true" checked /> 
like image 54
pinki Avatar answered Sep 21 '22 11:09

pinki