Sitecore 营销人员网络表单中的文件上传字段验证8.1更新3

Sitecore 营销人员网络表单中的文件上传字段验证8.1更新3,sitecore,sitecore8,web-forms-for-marketers,sitecore8.1,Sitecore,Sitecore8,Web Forms For Marketers,Sitecore8.1,我尝试在sitecore 8中使用网络表单对营销人员进行文件上传验证,但不起作用,请向我推荐解决方案。这是我的密码 namespace Test.Web.WFFM { [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] 公共类LimitFileSizeAttribute:DynamicValidationBase { 私有常量字符串FileSizeLimitKey=“filesizelimit”; privat

我尝试在sitecore 8中使用网络表单对营销人员进行文件上传验证,但不起作用,请向我推荐解决方案。这是我的密码

namespace Test.Web.WFFM
{
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
公共类LimitFileSizeAttribute:DynamicValidationBase
{
私有常量字符串FileSizeLimitKey=“filesizelimit”;
private const string ErrorMessageKey=“filesizelimiterror”;
受保护的重写ValidationResult ValidateFieldValue(IViewModel模型、对象值、ValidationContext ValidationContext)
{
//必需的属性应处理空值
如果(值==null)
{
返回ValidationResult.Success;
}
var fileBase=作为HttpPostedFileBase的值;
if(fileBase==null)
{
返回新的ValidationResult(ErrorMessage);
}
var fileUploadField=validationContext.ObjectInstance作为fileUploadField;
var limit=GetLimit(fileUploadField);
if(limit==-1)//未设置限制
{
返回ValidationResult.Success;
}
如果(fileBase.ContentLength>limit)
{
返回新的ValidationResult(GetErrorMessage(fileUploadField));
}
返回ValidationResult.Success;
}
私有静态int GetLimit(IViewModel字段)
{
if(field==null | |!field.Parameters.ContainsKey(FileSizeLimitKey))
{
返回-1;
}
var parameter=field.Parameters[FileSizeLimitKey];
int值;
if(int.TryParse(参数,out intValue))
{
返回值;
}
返回-1;
}
私有字符串GetErrorMessage(IViewModel字段)
{
if(field!=null&&field.Parameters.ContainsKey(ErrorMessageKey))
{
返回字段。参数[ErrorMessageKey];
}
返回错误消息;
}
}}
已创建RestrictedUploadField类

namespace Test.Web.WFFM.MVC
{
公共类RestrictedUploadField:FileUploadField
{ 
[限制文件大小]
公共重写HttpPostedFileBase值{get;set;}
}}
在sitecore中创建自定义验证并添加“参数”和“本地化参数”

创建自定义字段类型“受限文件上载”,在“验证”字段中添加验证,添加“参数”和“本地化参数”。

由于您似乎使用了我博客()中的代码,您能告诉我什么不起作用吗?您是否有错误?请想一想:您是否在fieldtype项上的“本地化参数”中填充了类似于“需要{0}字段”的内容。您在表单本身的字段项上填写了“参数”和“本地化参数”了吗?我添加了本地化参数,但它允许我上传超过我定义的大小的内容。您的属性代码被调用了吗?如果您调试它会发生什么?它不会进入调试点。因为您似乎使用了我博客()中的代码,您能告诉我什么不工作吗?您是否有错误?请想一想:您是否在fieldtype项上的“本地化参数”中填充了类似于“需要{0}字段”的内容。您在表单本身的字段项上填写了“参数”和“本地化参数”了吗?我添加了本地化参数,但它允许我上传超过我定义的大小的内容。您的属性代码被调用了吗?如果调试它会发生什么?它不会进入调试点。