我正在尝试在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
类型属性。