如何创建依赖于mvc4中的字段检查的注册表单?

时间:2012-11-28 13:43:12

标签: javascript ajax validation asp.net-mvc-4

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

在默认情况下,如果用户不是程序员(通过取消选中复选框字段),则所有字段都显示为隐藏语言,网站和缓刑字段。我的注册模型是这样的:

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; }            
    }

如果用户是程序员,则需要语言,站点和缓刑字段,用户必须填写它们。

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

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

1 个答案:

答案 0 :(得分:2)

快速搜索'mvc asp.net条件必填字段'给了我这几个链接:

Conditional Data Annotation

Using IValidatableObject

Flexible Conditional Data Annotation

这些更有针对性地进行服务器端验证。

所以回答你的问题:

  1. 查看链接,他们会有所帮助
  2. 您可以使用jQuery实现这一点,了解有关jQuery HideShow
  3. 的更多信息