asp.net-mvc-3 – StringLength属性行为
|
我有这样的属性,它检查最小和最大字符串长度: [StringLength(10,ErrorMessage = "The {0} must be at least {2} characters long.",MinimumLength = 3)]
public string PropertyName {get; set;}
基本上它是如何在默认的asp.net mvc 3.0模板中声明(他们只有最大100). 因此,如果字符串包含少于3个字符,则显示错误消息将是 "The PropertyName must be at least 3 characters long." 所以在这种情况下我没有看到任何问题 但如果字符串长度将超过10,则显示消息仍然是 "The PropertyName must be at least 3 characters long." 所以现在不正确了 但是,如果我将消息模板更改为如下所示: [StringLength(10,ErrorMessage = "The {0} must be at least {2} characters long and maximum {1} characters long",MinimumLength = 3)]
两种情况的错误信息将如下所示: "The PropertyName must be at least 3 characters long and maximum 10 characters long" 而且还不是那么好 1)消息是长的 2)最好为每个案例显示单独的信息,问题是我该怎么做帽子? 有没有什么办法可以显示两个不同的消息,一个消息如果长度小于最小值,另一个消息的长度大于最大值? 我可以看到只有一种方法来修复它是声明两个单独的StringLength属性,一个将检查最小值为另一个最大值,但不可能在方法上添加两个相同的属性,我也将使用MinLength和MaxLength属性,但不会生成不引人注目的属性.所以看起来我应该写我的自定义验证属性 但是,对于一个StringLength验证属性,如果可能,每种情况(最小和最大)显示两个不同的消息将会很好,你觉得如何? 解决方法您可以使用MinLength,MaxLength属性.它比两个StringLength属性更清晰[MinLength(3,ErrorMessage="The {0} must be at least {2} characters long")]
[MaxLength(10,ErrorMessage="The {0} must be maximum {2} characters long")]
public string PropertyName { get; set; } (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何为ASP.NET_SessionId cookie设置HttpOnly?
- asp.net – Razor Host Factory错误
- asp.net – ELMAH登录SQL Server
- 使用log4net和ASP.NET跟踪会话变量
- asp.net-mvc – MVC 3多个DisplayFor-Templates
- ASP.NET Mvc Api:设置cookie然后302/303 Redire
- asp.net-mvc – MVC3:一个控制器是否需要Window
- asp.net – ASP .Net Web API下载图像为二进制
- ASP.Net:动态添加到占位符的用户控件无法检索值
- asp.net-mvc – 填写下拉列表中选择另一个下拉列
