В MVC 6, как кодировать список флажков в поле зрения и передавать проверенные значения в контроллер?

Извините, но большинство моих поисков приводят меня к старым кодам MVC. Любая помощь будет оценена.

В MVC 6 с помощниками тегов, как вы кодируете набор флажков:

Используйте метку-помощник для метки, поэтому нажатие на нее переключит проверенное значениеСохраните (Bind?) Проверенное значение в свойстве IsOptionSelectedПередайте эти проверенные значения обратно в контроллер после нажатия кнопки Отправить.

?

Мне удалось правильно отобразить флажки с метками, но я не знаю, как передать проверенные значения обратно в контроллер через модель. Прямо сейчас значения IsOptionSelected возвращаются как ложные.

Я также смог заставить работать помощник html для ярлыка, но не для помощника тега. Возможно, я тоже все это кодирую неправильно, поэтому любые советы помогут!

Вот что у меня так далеко:

Дисплей:

Сущность:

public class PhoneOption
{
    public bool IsOptionSelected { get; set; } = false;
    public int OptionId { get; set; }
    public string OptionName { get; set; }
}

Модель:

[Display(Name = "Phone Options")]
public IEnumerable<PhoneOption> PhoneOptions { get; set; }

. . . .
PhoneOptions = repository.GetPhoneOptions();

Repository:

public IEnumerable<PhoneOption> GetPhoneOptions()
{
    IEnumerable<PhoneOption> options = new[]
    {
        new PhoneOption { OptionId = 1, OptionName = "Phone Case",       IsOptionSelected = false },  
        new PhoneOption { OptionId = 2, OptionName = "Screen Protector", IsOptionSelected = false },
        new PhoneOption { OptionId = 3, OptionName = "Car Charger",      IsOptionSelected = false },
        new PhoneOption { OptionId = 4, OptionName = "Extra Cable",      IsOptionSelected = false }
    };
    return options;
 }

Посмотреть:

<div class="form-group">
    <label class="control-label">Phone Options</label>
    <div>
        @foreach (var option in Model.PhoneOptions)
        {
            <div>
                @{ string cbId = "PhoneOption_" + @option.OptionId; }
                <input [email protected] type="checkbox" [email protected] id=@cbId name=@cbId />
                @Html.Label(@cbId.ToString(), @option.OptionName)
                @*This is causing invalid operation exception*@
                @*<label [email protected]()>@option.OptionName</label>*@ 
                <span asp-validation-for=@cbId class="text-danger" role="alert"></span>
            </div>
        }
    </div>    
</div>

Заранее спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос