私は、マーケティング担当者のためのSitecore 8 MVC Webフォームで構築したカスタムバリデーターに入りません。ここで
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)新しいバリデータ(複数可)を作成した:
場所:マーケティング/設定のサイトコア/システム/モジュール/ Webフォーム/検証/するFileUpload/AllowedFileSize
- アセンブリ:SitecoreUtilities
- クラス:SitecoreUtilities.UploadFile.RestrictSize
- MVCタイプ:ブランク
- バリデータの表示:ダイナミック
- クライアントスクリプトを有効にするには:
- パラメータをチェックする:私は、実際のアイテムの上に置い空として
- ローカライズされたパラメータ:空
- 内部制御:チェック
3)を追加しましたバリデータをフィールドタイプ/単純型/ファイルアップロード項目へ
4)フォームフィールドにファイルのアップロードを追加しました:公開し、
5)保存..サイト上で作業することはできません。
私は自分のマシンにIIS 7.5でlocal.test.orgサイトをセットアップし、Visual Studioのプロジェクトに入り、W3Wpに接続しましたが、アプリケーションには入りませんでした。
私はこの展開の手順を逃した場合は助言してください。
アップデート1:私のコードとhttps://doc.sitecore.net/web_forms_for_marketers/working_with_actions_and_validations/validations/walkthrough_create_and_assign_a_custom_fieldtype_validator間のコード差あたりのC#のコードを追加しました:タイトル
アップデート2にMVCを追加しました。
フォームは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