ビューにバインドされたモデルがあります。私は特定の入力フィールドにRegEx属性を追加しようとしています。私がそれをすれば、それは私にこれを与えます:DataAnnotationsの検証によってArgumentNullExceptionが発生しました
EventName="MessageEvent" Message="Unhandled ArgumentNullException in Papaya.Web.Controllers.CompanyController Update
ArgumentNullException: Value cannot be null.
Parameter name: value
at
at System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value)
RegularExpresion属性が設定されていない場合、正常に動作します。ここにモデルがあります:
[Required(ErrorMessageResourceName = nameof(Company_Resources.RequiredName), ErrorMessageResourceType = typeof(Company_Resources))]
[RegularExpression(Helpers.InputValidationStringLetters, ErrorMessageResourceName = nameof(Common_Resources.emsgInputValidationStringLetters), ErrorMessageResourceType = typeof(Common_Resources))]
[Display(Name = nameof(Company_Resources.NameLbl), ResourceType = typeof(Company_Resources))]
public virtual string Name { get; set; }
[CorporateIdentityNumber(ErrorMessageResourceName = nameof(Customer_Resources.vmsgInvalidCorporateIdentityNumber), ErrorMessageResourceType = typeof(Customer_Resources))]
[RegularExpression(Helpers.InputValidationStringNumbers, ErrorMessageResourceName = nameof(Common_Resources.emsgInputValidationStringNumbers), ErrorMessageResourceType = typeof(Common_Resources))]
[Display(Name = nameof(Company_Resources.CompanyRegSocialSecurityNoLbl), ResourceType = typeof(Company_Resources))]
public virtual string CompanyRegSocialSecurityNo { get; set; }
[Display(Name = nameof(Company_Resources.lblAddress1), ResourceType = typeof(Company_Resources))]
[RegularExpression(Helpers.InputValidationStringLettersNumbersDots, ErrorMessageResourceName = nameof(Common_Resources.emsgInputValidationStringLettersNumbersDots), ErrorMessageResourceType = typeof(Common_Resources))]
public virtual string Address1 { get; set; }
[Display(Name = nameof(Company_Resources.lblAddress2), ResourceType = typeof(Company_Resources))]
[RegularExpression(Helpers.InputValidationStringLettersNumbersDots, ErrorMessageResourceName = nameof(Common_Resources.emsgInputValidationStringLettersNumbersDots), ErrorMessageResourceType = typeof(Common_Resources))]
public virtual string Address2 { get; set; }
[Display(Name = nameof(Company_Resources.ZipCodeLbl), ResourceType = typeof(Company_Resources))]
[RegularExpression(Helpers.InputValidationStringNumbers, ErrorMessageResourceName = nameof(Common_Resources.emsgInputValidationStringNumbers), ErrorMessageResourceType = typeof(Common_Resources))]
public virtual string ZipCode { get; set; }
[Display(Name = nameof(Company_Resources.CityLbl), ResourceType = typeof(Company_Resources))]
[RegularExpression(Helpers.InputValidationStringLetters, ErrorMessageResourceName = nameof(Common_Resources.emsgInputValidationStringLetters), ErrorMessageResourceType = typeof(Common_Resources))]
public virtual string City { get; set; }
[Display(Name = nameof(Company_Resources.PhoneLbl), ResourceType = typeof(Company_Resources))]
public virtual string Phone { get; set; }
私に何かが不足していますか?
編集: 1つの表示値で、リソースからの文字列を使用しました。これはnullだったため、エラーです。みんなありがとう!
これは私があなたと私の知識を共有する私の専門ではありませんが。このArgument Null Exceptionは、関数が動作するためにヌルであるべきではない値を持っていると言っています。関数に渡す前にその変数を何かに設定していないことは明らかです。 null引数の例外が発生する場所を示します。これは、実際の関数がどこにあるのかを示します。System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value)。文字列Valueがnullであることを示します。あなたのコードのどこにset_DisplayNameがあるのですか? –