Я застрял здесь и был бы очень признателен за помощь. У меня есть форма в виде бритвы с полем ввода для текущего города, которое выглядит так:
@Html.LabelFor(x => x.UserModel.CurrentCity)
@Html.TextBoxFor(x => x.UserModel.CurrentCity, new { @data_bind = "value: UserModel.CurrentCity ", @class = "city", @data_val = "true", @data_val_required="City is required" })
@Html.ValidationMessageFor(x => x.UserModel.CurrentCity)
Я хочу автозаполнение для этого поля и использую плагин ввода токена jquery для этого, например:
$(".city").tokenInput('@Url.Action("AutocompleteCity", "Settings")',{ minChars: 2, tokenLimit: 1, hintText: "Type in a city" });
$(".city").tokenInput("add", {name: viewModel.UserModel.CurrentCity()});
Все работает нормально, кроме ненавязчивой проверки на стороне клиента. Форма публикуется, даже если CurrentCity пуст.
Я также попытался изменить помощники MVC на простой html:
<input data-val="true" data-val-required="City is required" type="text" class="city" data-bind = "value: UserModel.CurrentCity, attr: { name: 'UserModel.CurrentCity', id: 'UserModel.CurrentCity'}" />
<span class="field-validation-valid" data-valmsg-for="UserModel.CurrentCity" data-valmsg-replace="true"></span>
Этот подход предотвращает отправку формы, но класс ошибки проверки не внедряется в диапазон, и сообщение об ошибке не отображается.
Какие-либо предложения?