1

私の ASP.net アプリケーションでは、ビジネス オブジェクト クラス ファイルで検証のために次の dll ファイルを参照しています。

using Microsoft.Practices.EnterpriseLibrary.Common;
using Microsoft.Practices.EnterpriseLibrary.Validation;
using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;

そして、私はこのようなプロパティを検証しています

[StringLengthValidator(1, 50, MessageTemplateResourceName = "INVALID_NAME", 
 MessageTemplateResourceType = typeof(ValidatioinErrors))]
[RegexValidator("[A-Za-z]*", MessageTemplateResourceName = "INVALID_NAME",
 MessageTemplateResourceType = typeof(ValidatioinErrors))]
public string Name
{
  get { return name; }
  set { name = value; }
}

次のような IsValid() 関数を使用してこの検証をチェックするときに、Name の値を「test123」として渡します。

public bool IsValid()
{
   return Validation.Validate<myclassname>(this).IsValid;
}

そして、名前の値を「test123」として渡した後にこの IsValid() 関数をチェックすると、無効な名前を拒否して返すのではなく、この指定された名前を受け入れます。

私はどこで間違いを犯していますか?誰でもここで私を助けることができます....

4

1 に答える 1

0

の正規表現で試してみてください^[A-Za-z]*$

追加された「^」と「$」は、正規表現が文字列の一部ではなく文字列全体と一致する必要があることを意味します。

asp.net regexvalidatorはこれらを必要としませんが、それは例外です。通常の正規表現では、これらのアンカーが完全な入力のみに一致する必要があり、この属性も明らかに一致します。

于 2012-05-22T12:51:25.517 に答える