3 个布尔属性的 MVC 单选按钮

MVC radio buttons for 3 bool properties

我有一个具有 3 个布尔属性的模型:

public class ViewModel {
  public bool A { get; set; }
  public bool B { get; set; }
  public bool C { get; set; }
}

如果我是对的,默认情况下它们都是 false。 我想要 3 个单选按钮,所以其中只有一个可以是 true:

<input asp-for="A" name="type" type="radio" value="true" id="A"/>
<input asp-for="B" name="type" type="radio" value="true" id="B"/>
<input asp-for="C" name="type" type="radio" value="true" id="C"/>

但是当我从 3 个中选择一个并提交我的表单时,视图模型中的每个值都将是 false

我该如何解决这个问题?主要是我只想用3个单选按钮。

单选按钮的工作方式与复选框不同。如果是单选按钮,则将从一组单选按钮中选择的单选按钮的值发送回操作。

要对单选按钮进行分组 - html 元素的 name 属性 必须相同(我可以在您的 html 中看到)。现在您只需要有一个变量来捕获所选单选按钮的 value 。您必须为单选按钮设置 value 属性。

Html:

<input asp-for="A" name="type" type="radio" value="A" id="A"/>
<input asp-for="B" name="type" type="radio" value="B" id="B"/>
<input asp-for="C" name="type" type="radio" value="C" id="C"/>

那么在行动中:

public class ViewModel {
  public string type { get; set; }
}

type 属性 的值将在服务器端的 type 变量中可用。例如“A”或“B”或“C”但不是 True/False。