Как отправить значение флажка вместо логического значения в ASP NET Core?

У меня есть представление .cshtml следующим образом:

<form asp-controller="X" asp-action="Y">
    @for (int i = 0; i < Model.SomeListOfStrings.Count; i++)
    {
       <input type="checkbox" value="@Model.SomeListOfStrings[i]" />
    }
    <input type="submit" />
</form>

Я хочу отправить value этого <input type="checkbox" value="@Model.SomeListOfStrings[i]" /> вместо логического значения в моем запросе (и только если флажок установлен). Как я могу это сделать?

Шаблоны Angular PrimeNg
Шаблоны Angular PrimeNg
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной...
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Создайте ползком, похожим на звездные войны, с помощью CSS и Javascript
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Начала с розового дизайна
Начала с розового дизайна
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских...
Шлюз в PHP
Шлюз в PHP
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
14 Задание: Типы данных и структуры данных Python для DevOps
14 Задание: Типы данных и структуры данных Python для DevOps
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100
2
0
71
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны иметь возможность сделать что-то подобное в своем cshtml:

<form asp-controller="Home" asp-action="Index">
     @for (int i = 0; i < Model.SomeListOfStrings.Count; i++)
     {
         <input name="AreChecked" type="checkbox" value="@Model.SomeListOfStrings[i]" /> @Model.SomeListOfStrings[i]
         <br />
     }
        <input type="submit" />
</form>

Дайте вашему вводу то же имя — AreChecked в этом примере. Установите value на свои строки в своей коллекции, как вы уже сделали.

Затем в методе вашего контроллера добавьте параметр List<string> с именем AreChecked или как вы его назвали, и он должен автоматически связывать отмеченные элементы и иметь их значения при отправке:

[HttpPost]
public IActionResult Index(List<string> AreChecked)
{
    return Ok();
}

Пример просмотра:

Если я устанавливаю флажки «привет» и «привет», когда я отправляю форму, параметр контроллера связан с этими значениями:

Я сослался на эту страницу, чтобы сделать это, если вам нужна дополнительная информация.

Другие вопросы по теме