StringLengthAttribute MVC空白结尾

时间:2014-06-25 14:22:06

标签: c# asp.net-mvc-4 unobtrusive-validation

好的,所以我有一个如下设置的属性。如果有人输入一个名称,即使是15个字符中的一个字符,也会收到错误消息。这是它应该工作的预期方式,除了我发现一个问题。如果在这15个字符的末尾有15个字符加上空格,则不会捕获错误。为什么这样,我该如何防止它。

实施例。 " Santa Fe MAMMAL" < - 验证不会发现这一点。           " Santa Fe MAMMALS" < - 验证确实抓住了这一点。

[StringLength(15, ErrorMessage = "CallerID can be no more than 15 Characters in length including spaces")]
    public string CompanyNameCallerID { get; set; }

1 个答案:

答案 0 :(得分:0)

嗯,这是奇怪的行为,但我们能做什么:(

我认为你无法通过StringLengthAttribute处理它(或者我不知道怎么做),但是你可以做这些事情:

  • 正则表达式

[RegularExpression(@"^(.*\S)?$"), ErrorMessage = "Some error message")]

然而,我在这里看到的问题是它不会匹配任何字符串末尾的空格(任何字符数)

  • 修剪属性 - 类似

    private string m_CompanyNameCallerID = string.Empty; get { return this.m_CompanyNameCallerID; } set { this.m_CompanyNameCallerID = (string.IsNullOrWhiteSpace(value)) ? value : value.Trim(); }