发送清单 从视图到Controller

问题描述 投票:0回答:2

我有一个表格将被填写,并且有一个部分可以在复选框中签入以向对象添加关键字。我有一个模型关键字和一个产品模型,产品有一个列表。在将其添加到数据库之前,我需要填写它。这是我在View中的代码。

        <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>

如何将信息发送给控制器?

c# asp.net-core model-view-controller .net-core asp.net-core-mvc
2个回答
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
投票

我找到了解决方案。我改为发送ID而不是发送对象,而在控制器中我会收到一个ID数组。

© www.soinside.com 2019 - 2024. All rights reserved.