2012-02-28 14 views
1

私はまだMVC3とRazorを勉強しているので、これはおそらく簡単な質問です。DropDownListクライアント側の検証は、そうであってはならないときに検証します。 (MVC3、Razor)

@Html.DropDownList("Segments", "-- select segment --") 

のように定義されたビューモデルのセグメントプロパティがあります:私は唯一の目的である(AJAX経由)フィルタを助けるために2つ目のドロップダウン・リストのDropDownListを持つビューで

public IEnumerable<SelectListItem> Segments { get; set; } 

このDropDownListの変更イベントを処理し、別のDropDownListに適切な値を設定するJavaScriptがあります。他のDropDownListは次のように定義されています:

@Html.DropDownListFor(m => m.fafhProdRecId, Enumerable.Empty<SelectListItem>(), "-- select product recommendation --") 

これはすべて私が提出するまでうまくいきます。送信すると、[セグメント]ドロップダウンリストで検証エラーが発生します。

今では、セグメントには全く検証は必要ありません。DropDownList - その点に関しては、いずれのクライアント側の検証もどちらのドロップダウンリストにも存在してはいけません。

しかし、私は提出しようとしたとき、私は戻って検証エラーメッセージが表示されます:

値「1」は無効です。

なぜこれが起こっているのかわかりません。 Segmentsプロパティを装飾して、必須ではないということをどのようにするかわかりません。 私は控えめなjavascriptバリデーターに、実際にはかなり目立っていると言うことをどうにかしてはわかりません。

+0

ねえ、私たちは皆、読みやすい変数名を持ってすることに同意しませんでしたか? ☺ – MrBoJangles

答えて

1

あなたのモデルが持っていることを確認してくださいfafhProdRecIdとしてNULL可能、私は次のように宣言されています想像:これはに

public int fafhProdRecId { get; set; } 

変更:問題を解決する必要があり、うまくいけば

public int? fafhProdRecId { get; set; } 

、これが効果的になりますようモデルフィールドはNULL可能です(データベースフィールドがNULLであると仮定すると、もちろん)。あなたのViewModelクラスで

+0

fafhProdRecIdではなく、セグメントにエラーがあると思われます。私はあなたの変更を試みましたが、それは何の違いもないようでした。セグメントのプルダウンで「1」の値が無効です。 –

関連する問題