2011-07-27 10 views
0
@(Html.Telerik().ComboBoxFor(x => x.SelectedFoo) 
    .DataBinding(x => x.Ajax().Select("_List", "Foo")) 
    .AutoFill(true) 
    .HighlightFirstMatch(true) 
    .Filterable(x => x.FilterMode(AutoCompleteFilterMode.StartsWith)) 
) 
@Html.ValidationMessageFor(x => x.SelectedFoo) 

よしを変更するので、私はASP.NET MVCのためtelerikのコンボボックスコンポーネントを使用している、と私はどこ/変更を設定するために見つけることができません(また、ローカライズ)無効な値が入力されると、メッセージが表示されます。Telerik MVCコンボボックスの検証:エラーを無効な値エラーメッセージ

デフォルトのエラーメッセージが

値「ASD」は"asd"は、コンボボックスの許可された値のセットの一部ではないため、このエラーがスローされSelectedFoo

に対して有効ではありません。

可能であれば、DataAnnotationsを使用してこれを行いたいと思います。

[Required(ErrorMessageResourceType = typeof(Resources.ErrorStrings), 
    ErrorMessageResourceName = "Required_SelectedFoo")] 
public Guid? SelectedFoo { get; set; } 

答えて

0

これは奇妙ですが説明することができます。 SelectedFooはtypte GUIDです。フレームワークがGUIDを型にカーストしようとすると、それがスローされ、例外がmodelstateディクショナリに追加され、これはすべてバリデーション属性の呼び出しの前に発生します。したがって、このシナリオでは、おそらく簡単で妥当な方法で変更することはできません。あなたはしかし、行うことができますすることで、オートコンプリートを作成したり、StringSelectedFooの代わりSelectedFoo

+0

はい、そうです、telerikはアイテムがコレクション。まあそれは私が推測して安心です。 –

0

あなたは右のすべてをした:

これは私が現在持っているものです。

無効な値が入力された場合、Requriedの有効性は有効ですです。

Requiredには、RegularExpressionなどの検証属性などが必要ですが、正しい検証メッセージを得るには何も問題ありません。

+0

ための何でも、私はそれが 'Required'が、それは問題ではないではないことを知っている

[Required(ErrorMessageResourceType = typeof(Resources.ErrorStrings), ErrorMessageResourceName = "Required_SelectedFoo")] [RegularExpression("ExpressionforGUID")] public string StringSelectedFoo { get; set; } public GUID SelectedFoo{get{return (GUID)StringSelectedFoo;}}//have to do some sanitation work here 

とビューに...のようにモデルを変更することです。私は、入力された値がコンボボックスで有効でないため(つまり、値リスト内に見つかりません)、telerikが設定するエラーメッセージを変更しようとしています –

関連する問題