0

所以我有这个模型:

    public int ID { get; set; }
    [Required(ErrorMessage = "A Name is required")]
    public string Name { get; set; }
    public bool GreenCircle { get; set; }
    public bool BlueSquare { get; set; }
    public bool BlackDiamond { get; set; }
    public bool TerrainPark { get; set; }

目前,我拥有的允许用户创建配置文件的视图为此处列出的布尔属性设置了复选框。

我正在寻找一种设置 JQuery Validation 的方法,该方法需要将这些 bool 属性中的一个且只有一个设置为 true,所以我想我应该使用 RadioButtons 但我不太确定如何将它们分组它们是在视图中设置的,或者我如何执行这种类型的验证。

有任何想法吗?我是来学习的,所以如果必须的话,请指出我正确的研究方向;先感谢您。

4

1 回答 1

1

使用枚举。例如:

public enum MyEnum
{
    GreenCircle,
    BlueSquare,
    BlackDiamond,
    TerrainPark
}

然后在您的模型中使用它而不是四个不同的布尔属性。

public class MyModel
{
    public MyEnum MyOption { get; set; }
}

然后在您的视图中生成单选按钮。

@using (Html.BeginForm())
{
    @Html.RadioButtonFor(m => m.MyOption, (int)MyEnum.BlackDiamond);
    <span>Black Diamond</span><br />
    @Html.RadioButtonFor(m => m.MyOption, (int)MyEnum.BlueSquare, 
        new { @checked = "true" });
    <span>Blue Square</span><br />
    @Html.RadioButtonFor(m => m.MyOption, (int)MyEnum.GreenCircle);
    <span>Green Circle</span><br />
    @Html.RadioButtonFor(m => m.MyOption, (int)MyEnum.TerrainPark);
    <span>Terrain Park</span><br />
}

备注:也许您可以实现一个 HTML 助手来为您生成单选按钮标记。

于 2013-01-21T08:03:30.073 回答