我有一个将要填写的表格,并且您可以在其中选中复选框以向该对象添加关键字。我有一个模型关键字和一个产品模型,产品有一个列表。在将其添加到数据库之前,需要填充它。这是我在视图中的代码。
<form asp-action="Create">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Price" class="control-label"></label>
<input asp-for="Price" class="form-control" />
<span asp-validation-for="Price" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Details" class="control-label"></label>
<input asp-for="Details" class="form-control" />
<span asp-validation-for="Details" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="ProductionTimeInDays" class="control-label">Production Time In Days</label>
<input asp-for="ProductionTimeInDays" class="form-control" />
<span asp-validation-for="ProductionTimeInDays" class="text-danger"></span>
</div>
<div class="form-group">
<label class="control-label">Keywords</label>
@foreach(Keyword word in keywordsList)
{
<input type="checkbox" name="keywords" value="@word.Word" /> @word.Word<br/>
}
<span class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</form>
如何将信息发送到控制器?
答案 0 :(得分:0)
假设您在控制器中具有:
public List<Keyword> kewordsList{ get; set; } = new List<Keyword>();
但是在您的模型类中必须包含关键字:
public bool Checked { get; set; } // the name is written by me you can choose any name you want
复选框必须是布尔类型,然后您可以在表单中使用它:
@for (var i = 0; i < Model.keywordsList.Count(); i++)
{
<input asp-for="keywordsList[i].Checked" />
}
答案 1 :(得分:-1)
我找到了解决方案。我没有发送对象,而是发送了ID,然后在控制器中接收了一个IDs数组。