#javascript #jquery #asp.net-core #kendo-ui
Вопрос:
У меня есть модель представления ниже. Ничто не помечено как необходимое, но я не могу отправить форму, к которой она прикреплена, так как она всегда жалуется, что требуемое поле не заполнено. Это происходит, даже если я заполняю все доступные поля. Элементы управления, к которым привязана модель, являются элементами управления кендо. Я не уверен, что это имеет какой-либо эффект.
public class EmployeePlanAttributesModel
{
public int EmployeeAttributesId { get; set; }
public int EmployeeId { get; set; }
public decimal? Rate { get; set; }
public DateTime EffectiveDate { get; set; }
}
Можно ли отключить проверку на стороне клиента в javascript?
Я попытался использовать это в функции готовности документа, но это не сработало:
$('#EffectiveDate').rules('remove');
$('#Rate').rules('remove');
Ответ №1:
На страницах razor для отключения проверки на стороне клиента.Используйте это:-
services.Configure<HtmlHelperOptions>(o => o.ClientValidationEnabled = false);
Смотрите этот документ.
Комментарии:
1. Я хочу отключить его только для этого экрана.
Ответ №2:
Поскольку ни один ответ не помечен как правильный, я хочу попробовать .
Возможно, у вас есть форма, и в html упоминается, что ввод должен быть, скажем, датой
<input type="date" ....
Которые заставляют браузер выполнять проверку!
Ответ №3:
Попробуйте сделать свойства модели недействительными.
public class ModelWithNullable
{
public int Id { get; set; }
[Required]
public string Name { get; set; }
public DateTime? Date { get; set; }
}
Я также использую две проверки. Проверка JavaScript в представлении
<form method="post">
<!--Name-->
<div class="form-group">
<label asp-for="MyProperty.Name"></label>
<input asp-for="MyProperty.Name" class="form-control" />
@Html.ValidationMessageFor(model => model.MyProperty.Name, "", new { @class = "text-danger" })
</div>
<!--Description-->
<div class="form-group">
<label asp-for="MyProperty.Date"></label>
<input asp-for="MyProperty.Date" class="form-control" />
@Html.ValidationMessageFor(model => model.MyProperty.Date, "", new { @class = "text-danger" })
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
и ModelState в OnPost
if (ModelState.IsValid)
{
return RedirectToPage("/Index");
}
и это работает должным образом. Возвращает модель с нулевой датой. Просто не забудьте проверить значение null при отображении модели, в противном случае вы получите исключение.
Комментарии:
1. Упоминается ли такое поведение в официальной документации?
2. Пожалуйста, добавьте дополнительные сведения, чтобы расширить свой ответ, например, ссылки на рабочий код или документацию.
3. @OneNeptune docs.microsoft.com/en-us/ef/core/modeling/…