В моем проекте страницы бритвы .nercore у меня есть несколько форм с несколькими обработчиками onPost - разными кнопками для разных событий (например, добавление / копирование / редактирование / удаление)
Моя проблема - у меня нет понять, как я могу дифференцировать проверку на стороне клиента в зависимости от нажатой кнопки.
РЕДАКТИРОВАТЬ
Предположим, у меня есть следующий .cs html, который определяет два ввода поля данных и две кнопки. При нажатии одной кнопки (Добавить) первое поле A должно быть проверено, при нажатии второго (копия) - еще одного (поле B):
@page "{id:int}/{modeR:int}"
@model MyProject.Pages.MyProjectDB.AddRecordModel
@{
ViewData["Title"] = "Add Record";
}
<div class="row">
<div class="col-md-7">
<form method="post" enctype="multipart/form-data">
<div class="form-group">
<label asp-for="myClass.FieldA" class="control-label"></label>
<input asp-for="myClass.FieldA" class="form-control" />
<span asp-validation-for="myClass.FieldA" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="myClass.FieldB" class="control-label"></label>
<input asp-for="myClass.FieldB" class="form-control" />
<span asp-validation-for="myClass.FieldB" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" value="Add" class="btn btn-success">Add Record)</button>
<button type="submit" value="Copy" class="btn btn-warning">Edit Record</button>
</div>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
в конце моей страницы .cs html , но он запускается всегда, когда вызывается onPost.
Мне нужно запустить проверку «в группах»: для одного набора кнопок из одних полей и игнорировать другие, для другого - другой набор и т. д., как написано выше
Есть ли способ добиться этого без написания пользовательских javascript или сделать это на стороне сервера? ..
ДРУГОЕ РЕДАКТИРОВАНИЕ
Ответ был предоставлен для случая, когда у нас есть четкое разделение полей ввода / кнопок. Но как мы можем справиться с этим, если у нас есть два поля ввода и одна кнопка. Валидация НЕ должна запускаться, если один из них заполнен, и должна срабатывать, если оба значения равны нулю Я понимаю, это звучит немного странно, но в моем примере у меня есть одно поле ввода и один выпадающий список. Таким образом, либо поле должно быть заполнено, либо элемент должен быть выбран из списка, но для простоты кода давайте оставим два поля ввода (поле A и поле B, одно из которых должно быть заполнено) и одну кнопку:
@page "{id:int}/{modeR:int}"
@model MyProject.Pages.MyProjectDB.AddRecordModel
@{
ViewData["Title"] = "Add Record";
}
<div class="row">
<div class="col-md-7">
<form method="post" enctype="multipart/form-data">
<div class="form-group">
<label asp-for="myClass.FieldA" class="control-label"></label>
<input asp-for="myClass.FieldA" class="form-control" />
<span asp-validation-for="myClass.FieldA" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="myClass.FieldB" class="control-label"></label>
<input asp-for="myClass.FieldB" class="form-control" />
<span asp-validation-for="myClass.FieldB" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" value="Add" class="btn btn-success">Add Record)</button>
</div>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}
Заранее спасибо!