Sitecore WFFM电子邮件验证在发布包含类型为';的字段的表单时导致InvalidCastException;SimpleType/Email';

Sitecore WFFM电子邮件验证在发布包含类型为';的字段的表单时导致InvalidCastException;SimpleType/Email';,sitecore,web-forms-for-marketers,sitecore8,Sitecore,Web Forms For Marketers,Sitecore8,我们在Sitecore 8中使用WFFM,最近开始遇到一个问题,即任何包含电子邮件字段的表单在发布表单时都会导致invalidcastexception。如果我们从表单中删除电子邮件字段,则可以成功提交。从例外情况来看,电子邮件字段似乎没有正确绑定,但我不能确定 有没有人经历过这样的事情?下面可以找到该异常的详细信息 Unable to cast object of type 'System.String[]' to type 'System.String'. Description: An

我们在Sitecore 8中使用WFFM,最近开始遇到一个问题,即任何包含电子邮件字段的表单在发布表单时都会导致invalidcastexception。如果我们从表单中删除电子邮件字段,则可以成功提交。从例外情况来看,电子邮件字段似乎没有正确绑定,但我不能确定

有没有人经历过这样的事情?下面可以找到该异常的详细信息

Unable to cast object of type 'System.String[]' to type 'System.String'.

Description: An unhandled exception occurred. 

Exception Details: System.InvalidCastException: Unable to cast object of   type 'System.String[]' to type 'System.String'.

Source Error: 


An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[InvalidCastException: Unable to cast object of type 'System.String[]' to type 'System.String'.]
Sitecore.Forms.Mvc.Validators.EmailValidatorAttribute.IsValid(Object value, ValidationContext validationContext) +92
  System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(Object value, ValidationContext validationContext) +41
System.Web.Mvc.<Validate>d__15.MoveNext() +264
Sitecore.Forms.Mvc.Controllers.ModelBinders.<Validate>d__1.MoveNext() +940
Sitecore.Forms.Mvc.Controllers.ModelBinders.FieldModelBinder.OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext) +392
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +999
   Sitecore.Forms.Mvc.Controllers.ModelBinders.SectionModelBinder.BindFieldCollection(ControllerContext controllerContext, ModelBindingContext bindingContext, IEnumerable`1 list) +570

System.Web.Mvc.DefaultModelBinder.BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor) +441
System.Web.Mvc.DefaultModelBinder.BindProperties(ControllerContext controllerContext, ModelBindingContext bindingContext) +180
System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) +68
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +999
System.Web.Mvc.DefaultModelBinder.UpdateCollection(ControllerContext controllerContext, ModelBindingContext bindingContext, Type elementType) +569
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +976
System.Web.Mvc.DefaultModelBinder.GetPropertyValue(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor, IModelBinder propertyBinder) +33
System.Web.Mvc.DefaultModelBinder.BindProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor) +441
System.Web.Mvc.DefaultModelBinder.BindProperties(ControllerContext controllerContext, ModelBindingContext bindingContext) +180
System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext, ModelBindingContext bindingContext, Object model) +68
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +999
Sitecore.Support.Forms.Mvc.Controllers.ModelBinders.FormModelBinder.BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) +696
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext, ParameterDescriptor parameterDescriptor) +437
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext, ActionDescriptor actionDescriptor) +153
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +642
无法将“System.String[]”类型的对象强制转换为“System.String”类型。
描述:发生未处理的异常。
异常详细信息:System.InvalidCastException:无法将类型为“System.String[]”的对象强制转换为类型为“System.String”。
源错误:
在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来识别。
堆栈跟踪:
[InvalidCastException:无法将类型为“System.String[]”的对象强制转换为类型为“System.String”。]
Sitecore.Forms.Mvc.Validators.EmailValidatorAttribute.IsValid(对象值,ValidationContext ValidationContext)+92
System.ComponentModel.DataAnnotations.ValidationAttribute.GetValidationResult(对象值,ValidationContext ValidationContext)+41
System.Web.Mvc.d_u15.MoveNext()+264
Sitecore.Forms.Mvc.Controllers.ModelBinders.d_u1.MoveNext()+940
Sitecore.Forms.Mvc.Controllers.ModelBinders.FieldModelBinder.OnModelUpdated(ControllerContext ControllerContext,ModelBindingContext bindingContext)+392
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext ControllerContext,ModelBindingContext bindingContext)+999
Sitecore.Forms.Mvc.Controllers.ModelBinders.SectionModelBinder.BindFieldCollection(ControllerContext ControllerContext,ModelBindingContext bindingContext,IEnumerable`1列表)+570
System.Web.Mvc.DefaultModelBinder.BindProperty(ControllerContext ControllerContext,ModelBindingContext bindingContext,PropertyDescriptor PropertyDescriptor)+441
System.Web.Mvc.DefaultModelBinder.BindProperties(ControllerContext ControllerContext,ModelBindingContext bindingContext)+180
System.Web.Mvc.DefaultModelBinder.BindCompleteXelementalModel(ControllerContext ControllerContext,ModelBindingContext bindingContext,Object model)+68
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext ControllerContext,ModelBindingContext bindingContext)+999
System.Web.Mvc.DefaultModelBinder.UpdateCollection(ControllerContext ControllerContext,ModelBindingContext bindingContext,Type elementType)+569
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext ControllerContext,ModelBindingContext bindingContext)+976
System.Web.Mvc.DefaultModelBinder.GetPropertyValue(ControllerContext ControllerContext、ModelBindingContext bindingContext、PropertyDescriptor PropertyDescriptor、IModelBinder propertyBinder)+33
System.Web.Mvc.DefaultModelBinder.BindProperty(ControllerContext ControllerContext,ModelBindingContext bindingContext,PropertyDescriptor PropertyDescriptor)+441
System.Web.Mvc.DefaultModelBinder.BindProperties(ControllerContext ControllerContext,ModelBindingContext bindingContext)+180
System.Web.Mvc.DefaultModelBinder.BindCompleteXelementalModel(ControllerContext ControllerContext,ModelBindingContext bindingContext,Object model)+68
System.Web.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext ControllerContext,ModelBindingContext bindingContext)+999
Sitecore.Support.Forms.Mvc.Controller.ModelBinders.FormModelBinder.BindModel(ControllerContext ControllerContext,ModelBindingContext bindingContext)+696
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext ControllerContext,ParameterDescriptor ParameterDescriptor)+437
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor)+153
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext ControllerContext,String actionName)+642

该问题是由使用模型绑定的螺钉引起的。我提出的唯一解决方案是禁用“一瞥”。

字段类型:/sitecore/system/Modules/Web Forms for Marketers/Settings/field Types/Complex/Email或电子邮件验证程序:/sitecore/system/Modules/Web Forms for Marketers/Settings/Validation/Email是否有任何更改?