Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# StringLength表示MVC末尾的空白_C#_Asp.net Mvc 4_Unobtrusive Validation - Fatal编程技术网

C# StringLength表示MVC末尾的空白

C# StringLength表示MVC末尾的空白,c#,asp.net-mvc-4,unobtrusive-validation,C#,Asp.net Mvc 4,Unobtrusive Validation,好的,我有一个如下的属性集。如果有人在15个字符上输入一个名称,甚至是一个字符,他们会收到一条错误消息。这是预期的工作方式,除非我发现一个问题。如果有15个字符加上这15个字符末尾的空格,则不会捕获错误。为什么会这样,我该如何预防呢 例子。“圣达菲哺乳动物”这是一种奇怪的行为,但我们能做的是:( 我认为你不能用StringLengthAttribute(或者我不知道如何)来处理它,但你可以做到以下几点: 正则表达式 [RegularExpression(@“^(.*S)?$”,ErrorMe

好的,我有一个如下的属性集。如果有人在15个字符上输入一个名称,甚至是一个字符,他们会收到一条错误消息。这是预期的工作方式,除非我发现一个问题。如果有15个字符加上这15个字符末尾的空格,则不会捕获错误。为什么会这样,我该如何预防呢


例子。“圣达菲哺乳动物”这是一种奇怪的行为,但我们能做的是:(

我认为你不能用StringLengthAttribute(或者我不知道如何)来处理它,但你可以做到以下几点:

  • 正则表达式
[RegularExpression(@“^(.*S)?$”,ErrorMessage=“一些错误消息”)]

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

  • 修剪财产-类似于

    私有字符串m_CompanyNameCallerID=string.Empty;
    获取{返回this.m_CompanyNameCallerID;}
    设置{this.m_CompanyNameCallerID=(string.IsNullOrWhiteSpace(value))?值:value.Trim();}


因为空白是一个字符吗?是的,空白是一个字符,所以验证应该赶上它超过15个字符的限制。不幸的是,验证没有抓住它。虽然这不是最终的解决方案,但它确实有效,并且对于我需要它的解决方案来说效果很好。我真希望我知道为什么它以另一种方式失败。我想我会在MSDN论坛上发表这篇文章,看看我是否对这个问题有所了解。现在我想最好删除StringLength属性并使用这个正则表达式:
[RegularExpression(@“^(.{0,14}\S)?$”,ErrorMessage=“Error”)]
。它将允许0-15个不以空格结尾的长文本。
[StringLength(15, ErrorMessage = "CallerID can be no more than 15 Characters in length including spaces")]
    public string CompanyNameCallerID { get; set; }