Невозможно войти в пользовательский валидатор, который я построил на форме Sitecore 8 MVC для формы маркетологов.
Sitecore 8.0 (сборка 3) MVC WFFM Пользовательский валидатор не работает
Вот мои шаги, которые я использовал для создания валидаторов:
1) Я создал C# приложение (.NET 4.5), и построить библиотеку DLL для валидаций файлов. Построен, скопирован .DLL в каталог Bin. Работает хорошо на сайте Sitecore 6.6, у нас есть сайт sitecore 8.0, который он не работает.
Вот код проверки (я модифицировал для установки args.IsValid для false для тестирования).
namespace SitecoreUtilities.UploadFile
{
public class RestrictSize : FormCustomValidator
{
public int MaxFileSize
{
get
{
int maxSize;
if (int.TryParse(base.classAttributes["MaxFileSize"], out maxSize))
{
return maxSize;
}
return 0;
}
set
{
base.classAttributes["MaxFileSize"] = value.ToString();
}
}
public RestrictSize()
{
this.ServerValidate += this.OnSizeValidate;
}
private void OnSizeValidate(object source, ServerValidateEventArgs args)
{
FileUpload fileUpload = FindControl(ControlToValidate) as FileUpload;
if (!fileUpload.HasFile)
{
args.IsValid=true;
return;
}
args.IsValid = fileUpload.PostedFile.ContentLength <= MaxFileSize;
args.IsValid = false; // TESTING to confirm getting in here
}
}
}
2) создан новый валидатор (ы):
Адрес: Sitecore/система/Модули/Web Forms для сбытовиков/Настройки/Validation/FileUpload/AllowedFileSize
- сборки: SitecoreUtilities
- Класс: SitecoreUtilities.UploadFile.RestrictSize
- MVC Тип: пусто
- Validator Дисплей: Динамический
- Enable Client Script: проверено
- Параметры: пусто, как я ставлю на фактический элемент
- Локализованные Параметры: пустой
- Внутренний контроль : проверено
3) Добавлен валидатор для типов полей/Простые типы/File Upload Пункт
4) Добавлена загрузка файлов в поле формы:
5) Сохранен, опубликованные .. не может работать на сайте.
BTW, я установил сайт local.test.org в IIS 7.5 на своей машине и зашел в проект в визуальной студии и подключился к W3Wp, но не попал в приложение.
Если я пропустил шаг по развертыванию, проконсультируйтесь.
Update 1: Добавлен MVC в название
Update 2: Добавлены C# код за разницы коды между моим кодом и https://doc.sitecore.net/web_forms_for_marketers/working_with_actions_and_validations/validations/walkthrough_create_and_assign_a_custom_fieldtype_validator.
Является ли ваша форма формой MVC или нет? – Gatogordo
Если ваш код работает в версии v6, скорее всего, он не будет работать в v8, поскольку некоторые вещи изменились между этими версиями в wffm ... Можете ли вы проверить https://doc.sitecore.net/web_forms_for_marketers/working_with_actions_and_validations/validations/walkthrough_create_and_assign_a_custom_fieldtype_validator и посмотреть, он соответствует вашему коду и настройке? – Gatogordo
Thx Gatogordo для ответа. 1) да MVC (я обновил тему). если запрос, когда я оставил это поле пустым в валидаторе, я просто смоделировал его после других валидаторов, поскольку он пуст. 2) Спасибо за отправку этой ссылки. Я только что внес некоторые корректировки в код, даже заставил args.IsValid к false, все еще не нажав править. – DanO