模型上的mvc4条件数据注释验证

时间:2015-03-29 15:16:17

标签: .net asp.net-mvc-4 c#-4.0 asp.net-mvc-5 asp.net-core-mvc

我有一个嵌套的PersonalAddress视图模型。对于CommAddress和& PermanentAddress所有属性都是必需的。

我正在使用addressDetails模型进行通信地址和mvc4视图中的永久地址。但是对于永久地址,所有属性都不是必需的。如果是永久地址,如何使这些必需属性成为可选属性。

 public class AddressDetails
{
    [Required(ErrorMessage="Error Message...")]
    public string Road { get; set; }

    [Required(ErrorMessage = "Error Message...")]
    public string Sector { get; set; }

    [Required(ErrorMessage = "Error Message...")]
    public string City { get; set; }

    [Required(ErrorMessage = "Error Message...")]
    public string Country { get; set; }
}

public class PersonalAddress
{

    public AddressDetails CommAddress { get; set; }

    public AddressDetails PermanentAddress { get; set; }
}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

对你有意义吗?

public class AddressDetails
{
    public string Road { get; set; }
    public string Sector { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
}

[MetadataType(typeof(ReqAddressDetailsMetadata))]
public class ReqAddressDetail : AddressDetails
{
    public class ReqAddressDetailsMetadata
    {
        [Required(ErrorMessage = "Error Message...")]
        public string Road { get; set; }

        [Required(ErrorMessage = "Error Message...")]
        public string Sector { get; set; }

        [Required(ErrorMessage = "Error Message...")]
        public string City { get; set; }

        [Required(ErrorMessage = "Error Message...")]
        public string Country { get; set; }
    }
}

public class PersonalAddress
{

    public ReqAddressDetail CommAddress { get; set; }

    public AddressDetails PermanentAddress { get; set; }
}
相关问题