File tree Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Expand file tree Collapse file tree 2 files changed +36
-0
lines changed Original file line number Diff line number Diff line change 80
80
}
81
81
</div >
82
82
83
+ <div class =" form-field" >
84
+ <p >
85
+ It's also common to bind a boolean property from a list to checkboxes.
86
+ </p >
87
+ @for ( var i = 0 ; i < Model .Numbers .Count ; i ++ ) {
88
+ var number = Model .Numbers [i ];
89
+
90
+ <label >
91
+ <input type =" checkbox" asp-for =" Numbers[i].IsSelected" />
92
+ @number.Name
93
+ </label >
94
+ @* The asp-for above appends an input with value="false" to the form. *@
95
+ @* An explicit hidden generates input with value="False": *@
96
+ @* <input type="hidden" asp-for="Numbers[i].IsSelected" /> *@
97
+ <input type =" hidden" asp-for =" Numbers[i].Name" />
98
+ }
99
+ <span asp-validation-for =" Numbers" ></span >
100
+ <em class =" results" >Selected numbers: @string.Join( ", ", Model.Numbers.Where(n => n.IsSelected).Select(n => n.Name))</em >
101
+ </div >
102
+
83
103
<input type =" submit" value =" Submit" />
84
104
</form >
85
105
</fieldset >
Original file line number Diff line number Diff line change @@ -8,6 +8,13 @@ public class Checkboxes : PageModel
8
8
{
9
9
public string ? StatusMessage { get ; set ; }
10
10
11
+ public void OnGet ( )
12
+ {
13
+ Numbers . Add ( new ( ) { Name = "One" } ) ;
14
+ Numbers . Add ( new ( ) { Name = "Two" } ) ;
15
+ Numbers . Add ( new ( ) { Name = "Three" } ) ;
16
+ }
17
+
11
18
public IActionResult OnPost ( )
12
19
{
13
20
StatusMessage = "Form was submitted: " + ( ModelState . IsValid
@@ -36,4 +43,13 @@ public class InputModel
36
43
{
37
44
public bool IsChecked { get ; set ; }
38
45
}
46
+
47
+ [ BindProperty ]
48
+ public List < Selectable > Numbers { get ; } = new ( ) ;
49
+
50
+ public class Selectable
51
+ {
52
+ public required string Name { get ; set ; }
53
+ public bool IsSelected { get ; set ; }
54
+ }
39
55
}
You can’t perform that action at this time.
0 commit comments