加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 如何使用ASP.NET MVC 2验证复杂模型

发布时间:2020-12-16 09:33:38 所属栏目:asp.Net 来源:网络整理
导读:公共类UserModel ????{ ????????????[必需(ErrorMessage =“Le nom est requis.”)] ????????????[UIHint( “字符串”)] ????????????[数据类型(DataType.Text)] ????????????[DisplayName的( “标称”)] ????????????public string姓氏{get;组; } [DataType
公共类UserModel
????{
????????????[必需(ErrorMessage =“Le nom est requis.”)]
????????????[UIHint( “字符串”)]
????????????[数据类型(DataType.Text)]
????????????[DisplayName的( “标称”)]
????????????public string姓氏{get;组; }

[DataType(DataType.Text)]
        [UIHint("String")]
        [DisplayName("Prénom")]
        public string Firstname { get; set; }

        [Required(ErrorMessage="La spécialité principale est requise.")]
        [DisplayName("Spécialité principale")]
        public Speciality PrimarySpeciality { get; set; }

        [DisplayName("Spécialité secondaire")]
        public Speciality SecondarySpeciality { get; set; }
}

public class SpecialityModel
{
    [Required(ErrorMessage = "La spécialité est requise.")]
    public int Id { get; set; }

    public string Name { get; set; }
}

如何才能要求主要专业,而不是第二个?
似乎Required属性只检查nullable,但Specialty永远不会为null.

编辑:

看过这篇文章后http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html
我正在重新提出我的问题:如何防止子属性验证在主对象之前发生.正如您所看到的,SecondarySpeciality不是必需的,但仍然可以在Address类上获得DataAnnotation的验证原因.
我认为mvc2不能用于模型验证.
我应该选择普通型号吗? (这意味着更多的映射,但如果它的工作……)

解决方法

要对复杂对象进行验证,您需要通过创建自己的验证属性来实现自定义验证.我会输入一个简单的例子,但Phil Haack在这篇文章中有一篇很棒的文章:

http://haacked.com/archive/2009/11/19/aspnetmvc2-custom-validation.aspx

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读