我们正在使用WFFM 2.4版本151103,Sitecore 7.2。为MVC表单创建自定义验证。当它返回失败的ValidationResult时,表单上的字段不会突出显示,并且错误消息不会显示在该字段下的信息块中。这是模型代码:
m0h3n <- function(m){
a <- which(m, arr.ind = T)
colnames(m)[aggregate(col~row,a[order(a[,1]),],min)$col]
}
all.equal(akrun(n), cath(n), joe(n), m0h3n(n))
# [1] TRUE
microbenchmark(akrun(n), cath(n), joe(n), m0h3n(n))
# Unit: microseconds
# expr min lq mean median uq max neval
# akrun(n) 2291.981 2395.793 2871.7156 2482.7790 3561.9150 4205.370 100
# cath(n) 8263.210 8554.665 9695.9375 8782.8710 9947.9415 58239.983 100
# joe(n) 274.029 298.517 526.6722 312.0375 342.5355 2366.798 100
# m0h3n(n) 3890.178 3974.309 4280.6677 4073.1635 4227.7550 6337.501 100
自定义MVC验证器:
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Sitecore.Data.Items;
using Sitecore.Forms.Mvc.ViewModels;
using Sitecore.Forms.Mvc.ViewModels.Fields;
using Sitecore.Forms.Mvc.Validators;
using Frb.Atl.Extensions.WFFM.CustomValidators;
namespace Frb.Atl.Extensions.WFFM.Models
{
public class TourSingleLineTextField : SingleLineTextField
{
[AtlantaTourParticipantsAttribute("tourProperty")]
[DataType(DataType.Text)]
public override string Value { get; set; }
}
}
还有其他人在WFFM中遇到过这种行为吗?你有什么决议吗?
TIA
答案 0 :(得分:0)
此问题的原因不在自定义字段类型或验证代码中。问题是缺少分析配置文件。表单在进行自定义验证之前会失败。替换了分析文件,验证开始正常运行。