Извините, но большинство моих поисков приводит меня к старым кодам MVC. Любая помощь будет оценена по достоинству.
В MVC 6 с помощниками тегов, как вы кодируете набор флажков:
- Используйте помощник тега для метки, чтобы щелкнуть по нему, чтобы переключить отмеченное значение
- Сохранить (привязать?) Отмеченное значение к свойству 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();
Репозиторий:
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>
Заранее спасибо!