DataAnnotations中的StringLength不起作用:Win app .net 4.5

时间:2015-09-04 08:12:02

标签: c# .net

我正在尝试在C#中开发一个MVC win应用程序(与web相同,但使用当前视图的表单)。我先启动数据库,然后从db生成模型,我认为它有点懒,但我的问题是别的。

我有一个这样的课程:

public partial class Service
{
    [Browsable(false)]
    public long ID { get; set; }

    [Required(ErrorMessage="وارد کردن شماره ترمینال  الزامی است")]
    [MaxLength(3, ErrorMessage = "شماره ترمینال نمیتواند بیش از 3 کاراکتر باشد")]
    public long Terminal { get; set; }

    [Required(ErrorMessage = "وارد کردن شماره پورت الزامی است")]
    [MaxLength(5, ErrorMessage = "شماره پورت نمیتواند بیش 5 رقم باشد")]
    public long PortNumber { get; set; }

    [StringLength(32, ErrorMessage = "نام رابط نمیتواند بیش از 32 کاراکتر باشد")]
    public string ContactName { get; set; }

    [StringLength(10, ErrorMessage = "شماره تماس رابط نمیتواند بیش از 10 رقم باشد")]
    public string ContactNumber { get; set; }
}

我正在调用这样的验证:

private List<ValidationResult> validateService(Service input)
    {
        var results = new List<ValidationResult>();
        var context = new ValidationContext(input, null, null);
        Validator.TryValidateObject(input, context, results);

        return results;
    }

但结果列表不包含任何错误。输入示例如下:

Service s = new Service();
            s.ContactName = "hasan";
            s.Terminal = 1234567;
            s.ContactNumber = "100000000000000";

我在调用或使用错误的DataAnnotations时出错了吗?此外,[MaxLength]不适用于任何long类型属性。

0 个答案:

没有答案