我有一个包含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没有这样的构造函数。
我尝试了一些变化,但我最终能够选择许多单选按钮或绑定不起作用...
有人能告诉我使用我的模型解决这个问题的最佳方法吗?
答案 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
答案 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";
...
}