绑定动作参数模型时,ValidationContext.set_DisplayName中的ArgumentNullException

时间:2018-06-11 14:50:04

标签: asp.net-core asp.net-core-mvc model-binding

将表单发布到.net核心MVC操作时,我得到一个带有以下callstack的ArgumentNullException:

System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(string value)
Microsoft.AspNetCore.Mvc.DataAnnotations.Internal.DataAnnotationsModelValidator.Validate(ModelValidationContext validationContext)
Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.ValidateNode()
Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit(ModelMetadata metadata, string key, object model)
Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitChildren(IValidationStrategy strategy)
Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.VisitComplexType(IValidationStrategy defaultStrategy)
Microsoft.AspNetCore.Mvc.ModelBinding.Validation.ValidationVisitor.Visit(ModelMetadata metadata, string key, object model)
Microsoft.AspNetCore.Mvc.ModelBinding.ObjectModelValidator.Validate(ActionContext actionContext, ValidationStateDictionary validationState, string prefix, object model)

1 个答案:

答案 0 :(得分:0)

问题是其中一个模型属性具有[Display(Name = "")]属性。空字符串在绑定器代码中导致此异常。用[Display(Name = " ")]替换(用空格而不是空字符串)解决了这个问题。