2013-01-21 68 views
0

所以我有这个型号:复选框/单选按钮需要确认JQuery的MVC

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验证,将要求这些布尔属性中的一个,只有一个设置为true,所以我想我应该使用RadioButtons,但我不太确定我可以将它们在View中设置时进行分组,或者我可以如何执行该类型的验证。

任何想法?如果你必须的话,我在这里学习,所以请给我指出正确的研究方向;先谢谢你。

+0

看起来像一个枚举将更加适合您的需求。 –

+0

请您详细说明一下吗? – Jfabs

回答

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辅助生成的单选按钮标记为您服务。

+0

令人敬畏。我要去一下,期待更新并非常感谢你! – Jfabs

+0

因此,尽管我的观点是使用强类型模型并在顶部引用了正确的模型,但我仍然得到以下错误:“ExperienceLevel在当前上下文中不存在” 'public enum ExperienceLevel {.... (在该视图中)@ Html.RadioButtonFor(m => m.ExpLevel,(int)ExperienceLevel.GreenCircle);'} (在模型中)public ExperienceLevel ExpLevel {get; set;} 它给我错误ExperienceLevel.GreenCircle – Jfabs

+0

划痕,发现一个解决方案。感谢一堆,它完美解决。我有我的RadioButtons列表。现在我只需要弄清楚如何让我的控制器中选定的RadioButton的值与它一起工作 – Jfabs