Так как вам нужна клиентская часть, мы говорим о JS. Но с помощью бритвы вы можете проверить несколько результатов, используя аннотации модели. Например, предположим, что у вас есть этот объект.
public class UserCreationVO
{
[Required]
[StringLength(255)]
public string Username { get; set; }
}
Теперь, что вам нужно сделать в своем интерфейсе (имеется в виду ваш файл .cs html), это сказать asp. net, чтобы использовать это свойства для проверки. Так, например:
@model UserCreationVO
<form method="post">
<input asp-for="UserName" />
<span asp-validation-for="UserName"></span>
</form>
Как вы можете видеть выше, использование asp -for является отличным способом создания проверок с использованием ваших моделей. Будьте осторожны, вы должны передать в качестве модели объект, который вы хотите проверить. Тег asp -for показывает свойство модели. Таким образом, вы не можете передать его в Viewbag или что-то еще. Это создает некоторые автоматы c html и js для вас и обрабатывает их.
Более того, вы все равно должны всегда проверять результат в контроллере. Поскольку проверка на стороне клиента осуществляется по соображениям производительности и взаимодействия с пользователем и не обеспечивает какой-либо безопасности:
public IActionResult CreateUser(UserCreationVO user)
{
if(!ModelState.IsValid)
return your_error;
}
Последнее, но не менее важное: Вы должны включить JQuery ненавязчивую библиотеку проверки . Кроме того, если у вас есть некоторые дополнительные требования, такие как проверка, существует ли имя пользователя (что невозможно сделать без обращения к серверу), вы можете использовать атрибут [Remote]
.
Дополнительная информация и чтение о внешней проверке с бритвой: здесь
Как использовать удаленный атрибут: Использование удаленной проверки с ASP. NET Core
EDIT:
Так что обычно я советую использовать модели и создавать их. Как вы говорите, политика требуется в одной форме, но не в другой. Что вы должны сделать, чтобы получить обслуживаемый код, в котором вы просто меняете атрибут вашей модели и происходит проверка, вам нужно создать другой VO. Например:
public class CreatePolicyVO
{
[Required]
public string PolicyNumber {get; set;}
}
И еще один объект, например, обновление:
public class UpdatePolicyVO
{
public string PolicyNumber {get; set;}
}
Поскольку вам также необходимо проверить их в контроллере. Таким образом, передача другого объекта позволяет вам использовать ModelState.IsValid и другие MVC и бритвенные функции. Обычно, если поле требуется в одном случае, а не в другом, вам нужна другая модель.