将表单中的复选框链接回 MVC/Razor 页面中 class 的字符串 属性

Linking checkboxes in a form back to a string property of a class in MVC/Razor Pages

我正在为一项任务创建一个表格,表格完成后,为每个申请人输入的数据将保存到数据库中。每个属性申请者都是在一个申请者class中创建的,有些是必需的有些不是。

作为其中的一部分,我需要要求用户输入申请人的性别。我最初想做和实施的是为我的表单中的每个性别创建一个复选框,然后根据我的页面模型中选中的性别,我将该性别保存回 [=23= 的性别 属性 ] 这是一个字符串。当 OnPost() 为 运行.

这很好用,但是性别 属性 必须是必需的,当我在 class 和 运行 应用程序中将道具设置为必需时,当我尝试提交表单时我在页面上收到一条错误消息,指出需要性别。

在这种情况下,我编写此代码的最佳方式是什么,还是我应该考虑一个替代解决方案?我知道我可以让用户在文本框中输入性别,它会起作用,但我认为一组复选框会更整洁。

提前致谢,

如果你想让用户从非常有限的选项中做出一个选择,最好的控件就是input type="radio"。这也有利于与 Razor Pages 验证配合使用。

这是你的 PageModel 属性:

[BindProperty, Required]
public string Gender { get; set; }

这是您的表格:

<span asp-validation-for="Gender"></span>
<form method="post">
    <input type="radio" asp-for="Gender" value="Male" />Male<br />
    <input type="radio" asp-for="Gender" value="Female" />Female<br />
    <input type="radio" asp-for="Gender" value="Other" />Other<br />
    <input type="submit"/>
</form>