Я думаю, что это помощник тега, который вызывает проблему, которая в ретроспективе имеет смысл. Я полагаю, потому что свойство bool не имеет значения, оно по умолчанию равно false и перезаписывает тот факт, что я установил флажок Да.
Я решил это путем полного удаления флажка и инициализации вместо этого. логические значения в конструкторе ViewModel. Таким образом, помощник по тегам автоматически выбирает начальное значение.
Примерно так:
public class MyViewModel
{
public bool MyBool { get; set; }
public MyViewModel()
{
MyBool = true;
}
}
<div class="form-group">
<label asp-for="MyBool" class="form-check-label"></label>
<div class="form-check my-2">
<input asp-for="MyBool" class="form-check-input" type="radio" value="true" />
<label asp-for="MyBool" class="form-check-label">Yes</label>
</div>
<div class="form-check my-2">
<input asp-for="MyBool" class="form-check-input" type="radio" value="false" />
<label asp-for="MyBool" class="form-check-label">No</label>
</div>
<span asp-validation-for="MyBool" class="text-danger small"></span>
</div>
Буду признателен за любой дополнительный ввод, если у кого-либо есть.