首页 > 解决方案 > Razor tag helper bool 单选按钮客户端“必需”验证

问题描述

我在页面上的表单中使用 Razor Pages Tag helpers 是/否。表单中的所有其他字段都有客户端不显眼的验证,但是 bool? 是/否没有。我有几个这样的收音机是/否,我如何让客户端为他们工作?

[Required]
public bool? Have7DaysWorth { get; set; }

我也尝试过远离标签助手,但它与此无关:

<label asp-for="Have7DaysWorth" class="control-label"></label>
<div>
    <input type="radio" id="daysRadio1" name="Have7DaysWorth "
            checked="@(Have7DaysWorth  == true ? "checked": null)"
            class="custom-control-input" value="true">
    <label class="custom-control-label" for="daysRadio1">Yes</label>
</div>
<div>
    <input type="radio" id="pharmacyRadio2" name="Have7DaysWorth "
            checked="@(Have7DaysWorth  == false ? "checked": null)"
            class="custom-control-input" value="false">
    <label class="custom-control-label" for="daysRadio1">No</label>
</div>
<span asp-validation-for="Have7DaysWorth " class="text-danger"></span>

我从搜索中知道有一些关于预先选择的建议,但这并不是用户输入表单的有意识的值,所以这里不是一个选项。

我尝试了其他一些方法,但是当模型状态无效并被返回时,它们似乎失去了价值。

如何让客户端以我想要的预期方式为布尔收音机工作?

标签: asp.net-corerazorrazor-pagesunobtrusive-validationasp.net-core-tag-helpers

解决方案


您没有asp-for在收音机上使用,所以它不知道它应该是必需的,因为没有涉及模型,因此该Required属性的属性。


推荐阅读