WFFM在发布包含“SimpleTypes / Email”类型字段的表单时导致InvalidCastException的电子邮件验证

时间:2015-10-05 09:42:35

标签: sitecore web-forms-for-marketers sitecore8

我们正在使用WFFM和Sitecore 8,并且最近已经开始遇到一个问题,即任何包含电子邮件字段的表单在发布表单时都会导致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

1 个答案:

答案 0 :(得分:0)

我有同样的问题。问题是由Glimpse拧紧模型绑定引起的。到目前为止,我提出的唯一解决方案是禁用Glimpse。