0

我想在 mvc 4 应用程序中创建一个注册表单。所以,当用户注册时,我想定义用户的状态(他是否是程序员)并根据用户的选择动态显示(或隐藏)一些额外的字段来填充。

在默认情况下,如果用户不是程序员(通过取消选中复选框字段),所有字段似乎都隐藏了Language、Site 和 Probation字段。我的注册模型是这样的:

public class RegisterModel
    {
        [Required]
        [Display(Name = "User name")]
        public string UserName { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "*", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "Confirm password")]
        [Compare("Password", ErrorMessage = "*")]
        public string ConfirmPassword { get; set; }

        [Display(Name = "Profession")]
        public bool IsProgrammer { get; set; }

        [Required]
        [Display(Name = "Language")]
        public string Language { get; set; }

        [Required]
        [Display(Name = "Site")]
        public string Site { get; set; }

        [Required]
        [Display(Name = "Probation")]
        public string Probation { get; set; }            
    }

如果用户是程序员,Language、Site 和 Probation 字段是必填项,用户必须填写。

我应该如何创建注册模型,如果用户不是程序员,不需要语言、站点和试用字段并让注册

我的第二个问题是,当复选框被选中(未选中)时,如何动态显示(隐藏)字段?

4

1 回答 1

2

快速搜索“mvc asp.net 条件必填字段”给了我以下几个链接:

条件数据注释

使用 IValidatableObject

灵活的条件数据注释

这些更针对服务器端验证。

所以回答你的问题:

  1. 查看链接,它们会有所帮助
  2. 您可以使用 jQuery 来实现,了解更多关于 jQuery Hide and Show
于 2012-11-28T13:54:21.370 回答