首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在模型中使用相同的命名属性时,是否未显示验证消息?

在模型中使用相同的命名属性时,是否未显示验证消息?
EN

Stack Overflow用户
提问于 2011-05-19 21:46:14
回答 1查看 639关注 0票数 1

我有两个模型,即Login和Register:

登录模型

代码语言:javascript
复制
public class LoginModel
    {
        [Required(ErrorMessage = "Email is required")]
        [RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$", ErrorMessage = "Not a valid email")]
        [DataType(DataType.EmailAddress)]
        [DisplayName("Email")]
        [StringLength(150, ErrorMessage = "Must be less than 150 characters")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Password is required")]
        [DataType(DataType.Password)]
        [DisplayName("Password")]
        [StringLength(30, ErrorMessage = "Must be less than 30 characters")]
        public string LoginPassword { get; set; }

        [DisplayName("Remember me")]
        public bool Remember { get; set; }

    }

注册模型:

代码语言:javascript
复制
   public class RegisterModel
    {
        [Required(ErrorMessage = "Email is required")]
        [RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$", ErrorMessage = "Not a valid email")]
        [DataType(DataType.EmailAddress)]
        [DisplayName("Email")]
        [StringLength(150, ErrorMessage = "Must be less than 150 characters")]
        public string Email { get; set; }

        [Required(ErrorMessage = "Full Name is required")]
        [DisplayName("Full Name")]
        [StringLength(50, ErrorMessage = "Must be less than 50 characters")]
        public string FullName { get; set; }

        [Required(ErrorMessage = "Password is required")]
        [DataType(DataType.Password)]
        [DisplayName("Password")]
        [StringLength(30, ErrorMessage = "Must be less than 30 characters")]
        public string RegisterPassword { get; set; }

        [Required(ErrorMessage = "Confirm Password is required")]
        [DataType(DataType.Password)]
        [DisplayName("Confirm Password")]
        [StringLength(30, ErrorMessage = "Must be less than 30 characters")]
        public string ConfirmPassword { get; set; }

        [Required(ErrorMessage = "Please read and agree the terms and condition.")]
        [DisplayName("I agree to the terms and conditions")]
        public bool AgreeTerms { get; set; }

    }

它们都是使用单独的模式弹出窗口在主页上调用的-->所以让我们假设用户是否注册了自己(在注册时,他在没有输入电子邮件的情况下按enter键,并显示验证消息)。成功注册后,用户尝试登录(并再次按enter键而不输入电子邮件),但这次不显示验证消息。

据我所知,没有显示验证摘要的原因是验证消息出现在注册模式中,该模式目前不可见,这是因为两个模型都使用了电子邮件(名为: Email)字段属性。

我可以使用电子邮件字段的不同名称来实现我想要的行为,但是有什么方法不这样做吗?

除此之外,我是否可以从Register模型继承,并将其用于登录目的,同时执行此操作时,上述方案的输出将是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-20 03:57:40

您必须修改编辑器模板,使其包含一个前缀或其他使其唯一的东西。这里有一个答案,它提供了一些我认为适用于TextBoxFor rendering to HTML with prefix on the ID attribute的扩展方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6059678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档