绑定动态输入 [英] Bind dynamic inputs
本文介绍了绑定动态输入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个具有动态输入的表单,所以我不知道输入的数量和名称,正如您在下面的代码中看到的那样,它们来自数据库.
I have a form that has a dynamic inputs, so I don't know the count and names of the inputs, as you can see in the code below, they came from database.
<div class="panel-body">
<form asp-action="BrandFilter" method="get">
<div class="form-group">
@foreach (var brand in Model)
{
<div class="checkbox">
<label>
<input asp-for="@brand" type="checkbox" />@brand (10)
</label>
</div>
}
</div>
<button class="btn btn-default btn-sm btn-primary"><i class="fa fa-pencil"></i> Apply</button>
</form>
</div>
问题是提交表单时如何绑定所有输入.
The question is how to bind all inputs when form is submitted.
public async Task<IActionResult> BrandFilter( /* ??? /*)
推荐答案
我创建了一个演示,您可以选择品牌并将所有复选框的值传递给控制器.
I create a demo that you could select the brands and pass all checkboxes' values to controller.
1.Brand.cs
1.Brand.cs
public class Brand
{
[Key]
public int ID { get; set; }
public string Name { get; set; }
public bool Selected { get; set; }
}
2.查看
@model List<Models.Brand>
<div class="col-md-4">
<form asp-action="BrandFilter" method="post">
<div class="form-group">
@for (int i = 0; i < Model.Count(); i++)
{
<div class="checkbox">
@Html.HiddenFor(m => m[i].Name)
@Html.CheckBoxFor(m => m[i].Selected)
@Html.DisplayFor(m => m[i].Name)
</div>
}
</div>
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</form>
</div>
3.controller
3.controller
public async Task<IActionResult> BrandFilter(List<Brand> brands)
这篇关于绑定动态输入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文