3个布尔属性的单选按钮

时间:2014-09-02 18:32:43

标签: asp.net-mvc

我有一个包含3个属性的模型:

public class OptionsViewModel {
  public Boolean A { get; set; }
  public Boolean B { get; set; }
  public Boolean C { get; set; }
}

我需要为包含同一组的3个属性显示3个单选按钮。

所以我添加了以下内容

@Html.RadioButtonFor(x => x.A)
@Html.RadioButtonFor(x => x.B)
@Html.RadioButtonFor(x => x.C)

我确实有布尔属性而不只是一个...

代码无法编译,因为RadioButtonFor没有这样的构造函数。

我尝试了一些变化,但我最终能够选择许多单选按钮或绑定不起作用...

有人能告诉我使用我的模型解决这个问题的最佳方法吗?

3 个答案:

答案 0 :(得分:0)

你试过这个吗?

@Html.RadioButtonFor(x => x.A, "A", true) A
@Html.RadioButtonFor(x => x.B, "B", true) B
@Html.RadioButtonFor(x => x.C, "C", false) C

更多http://www.c-sharpcorner.com/uploadfile/b19d5a/how-to-create-radio-button-in-asp-net-mvc3-razor-application/

答案 1 :(得分:0)

  

我需要为包含同一组的3个属性显示3个单选按钮。

您必须更新模型:

public class OptionsViewModel {
  public bool A { get; set; }
  public bool B { get; set; }
  public bool C { get; set; }
  public bool Value { get; set; }
}

然后你的剃刀:

@Html.RadioButtonFor(x => x.Value, "A", model.A) A
@Html.RadioButtonFor(x => x.Value, "B", model.B) B
@Html.RadioButtonFor(x => x.Value, "C", model.C) C

使用RadioButton,您只能获得1个值。

答案 2 :(得分:0)

它帮助了我:

剃刀代码:

@Html.RadioButtonFor(model => model.A, "A", new { @Name = "sign", @checked = Model.A })
@Html.RadioButtonFor(model => model.B, "B", new { @Name = "sign", @checked = Model.B })
@Html.RadioButtonFor(model => model.C, "C", new { @Name = "sign", @checked = Model.C })

行动方法:

[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Add(ModelType dataItem, FormCollection formValues)
{
   dataItem.A = formValues["sign"] == "A";
   dataItem.B = formValues["sign"] == "B";
   dataItem.C = formValues["sign"] == "C";
   ...
}