【问题标题】:CheckBox/RadioButton Required Validation JQuery MVCCheckBox/RadioButton 所需的验证 JQuery MVC
【发布时间】:2013-01-04 06:02:08
【问题描述】:

所以我有这个模型:

    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,但我不太确定我该怎么做在视图中设置它们时将它们分组,或者我如何执行该类型的验证。

有什么想法吗?我是来学习的,所以如果你必须的话,请指出我正确的研究方向;提前谢谢你。

【问题讨论】:

  • 看起来枚举会更适合您的需求。
  • 能否详细说明?

标签: c# jquery asp.net-mvc radio-button


【解决方案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 助手来为您生成单选按钮标记。

【讨论】:

  • 太棒了。我要去试一试,期待更新,非常感谢!
  • 因此,尽管我的视图使用的是强类型模型,并且顶部引用了正确的模型,但我不断收到错误消息:“ExperienceLevel 在当前上下文中不存在”'公共枚举 ExperienceLevel {......} (在模型中)public ExperienceLevel ExpLevel{get;set;} (在视图中)@Html.RadioButtonFor(m=>m.ExpLevel, (int)ExperienceLevel.GreenCircle);'它给了我 ExperienceLevel.GreenCircle 的错误
  • 从头开始,找到了解决方案。非常感谢,结果很完美。我有我的 RadioButtons 列表。现在我只需要弄清楚如何在我的控制器中获取所选 RadioButton 的值来使用它
猜你喜欢
  • 2014-03-21
  • 1970-01-01
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
  • 2012-09-03
  • 2017-08-16
相关资源
最近更新 更多