Отправить список <something>в контроллер из окна просмотра - PullRequest
0 голосов
/ 05 марта 2019

У меня есть форма, которая будет заполнена, и есть часть, где вы можете установить флажки, чтобы добавить ключевые слова к объекту.У меня есть ключевое слово модели и модель продукта, у продукта есть список.Мне нужно заполнить его, прежде чем я добавлю его в базу данных.Это мой код в представлении.

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

Как я могу отправить информацию на контроллер?

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Я нашел решение.Вместо того, чтобы отправлять объект, я изменил отправку идентификатора, и в контроллере я получил бы массив идентификаторов.

0 голосов
/ 05 марта 2019

Предположим, у вас в контроллере есть:

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" />
}
...