![](/img/trans.png)
[英]ASP.NET Core Web API - How to implement optional validation using Fluent Validation
[英]How to make validation annotation optional? Asp.net Core
我需要构建一组定制的验证注释,其中一些假定是对已经存在的注释的扩展,而另一些假定是完全发明的。
所以,如果可能的话,请为我提供很好的资源来学习如何 [1] 扩展或/和 [2] 发明注释
基本上,我需要有关如何使[Required]
注释可选的帮助? 我需要将其扩展为[Required(parameter)]
以便我可以以某种方式将值传递给 model 以确定参数是真还是假。 因此,我可以控制这次是否需要应用注释。
所以我可以以某种方式将值传递给 model 以确定参数是真还是假
您可以选择设置自定义 model 验证来完成它,这是官方链接。
以下是我的demo,希望对你有帮助。
验证 class:
public class RequiredExAttribute : ValidationAttribute
{
public string IsFalse { get; set; }
public string GetErrorMessage() => "Not this name";
public RequiredExAttribute(string name)
{
IsFalse = name;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value.ToString() == IsFalse)
{
return new ValidationResult(GetErrorMessage());
}
else return ValidationResult.Success;
}
}
Controller:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(JobApplication jobApplication)
{
return View();
}
Model:
public class JobApplication
{
[RequiredEx("Tsai")]
public string Name { get; set; }
}
看法:
@model JobApplication
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<form class="m-1 p-1" method="post">
<div class="form-group">
<label asp-for="Name"></label>
<input asp-for="Name" type="text" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<button type="submit" class="btn btn-primary">Submit Application</button>
</form>
<style>
.input-validation-error {
border-color: red;
}
</style>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.