ビューに次のフォームがあります。
@using (Html.BeginForm())
{
@Html.DropDownListFor(m => m.ModelValue, Model.ModelSelectList, " - ", new {@class = "kendo-skip-dropdown"})
@Html.ValidationMessageFor(m => m.ModelValue)
<input type="submit" />
}
また$("select").not(".kendo-skip-dropdown").kendoDropDownList();
、_Layout.cshtml のページ ロード コードで呼び出しを行い、すべてのselect
要素を Kendo DropDownListウィジェットとしてスタイル設定します。
ModelValue == null
すべてのテストに当てはまり、kendo-skip-dropdown
クラスが適用されると、ドロップダウンは完全に標準になり、値を選択せずに投稿しようとすると、予想される「フィールドが必要です」というクライアント側エラーが発生します。クラスを削除してkendo-skip-dropdown
Kendo UI に作業を任せ、値を選択せずに投稿しようとすると、クライアント側で「数値でなければならない」というエラーが表示され、optionLabel
デフォルトが値として受け入れられるようになりました。
Kendo を使用するときにドロップダウン用にレンダリングされる HTML は次のとおりです。
<span tabindex="0" style="" class="k-widget k-dropdown k-header"><span class="k-dropdown-wrap k-state-default k-state-hover"><span class="k-input">-</span>
<span class="k-select"><span class="k-icon k-arrow-down">select</span></span></span>
<select data-val="true" data-val-number="The field ModelValue must be a number." data-val-required="The ModelValue field is required." id="ModelValue"
name="ModelValue" style="display: none;" class="input-validation-error">
<option>-</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
</select></span>
ここで何が違うのでしょうか?剣道以外の選択リストと剣道の選択リストの間で私の検証を一貫させる方法を誰か教えてもらえますか?