C# 如何使验证注释成为可选的?Asp.net内核
我需要构建一组定制的验证注释,其中一些被认为是对已经存在的注释的扩展,而另一些则被认为是完全虚构的 因此,如果可能的话,请为我提供好的资源来学习如何[1]扩展或/和[2]发明注释 基本上,我需要有关如何使C# 如何使验证注释成为可选的?Asp.net内核,c#,asp.net-core,C#,Asp.net Core,我需要构建一组定制的验证注释,其中一些被认为是对已经存在的注释的扩展,而另一些则被认为是完全虚构的 因此,如果可能的话,请为我提供好的资源来学习如何[1]扩展或/和[2]发明注释 基本上,我需要有关如何使[必需]注释可选的帮助?我需要将其扩展为类似于[必需(参数)],这样我就可以通过某种方式将值传递给模型,以确定参数是真是假。因此,我可以控制注释,如果我这次是否需要应用它 因此,我可以通过某种方式将值传递给模型,以确定参数 真假 您可以选择设置自定义模型验证来完成它,这是官方的 下面是我的演示,
[必需]
注释可选的帮助?我需要将其扩展为类似于[必需(参数)]
,这样我就可以通过某种方式将值传递给模型,以确定参数是真是假。因此,我可以控制注释,如果我这次是否需要应用它
因此,我可以通过某种方式将值传递给模型,以确定参数
真假
您可以选择设置自定义模型验证来完成它,这是官方的
下面是我的演示,希望能对你有所帮助
验证类别:
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;
}
}
控制器:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(JobApplication jobApplication)
{
return View();
}
型号:
public class JobApplication
{
[RequiredEx("Tsai")]
public string Name { get; set; }
}
视图:
@模型作业应用程序
提交申请
.输入验证错误{
边框颜色:红色;
}
@节脚本{
@{wait Html.RenderPartialAsync(“_validationScript”);}
}
结果:
因此,我可以通过某种方式将值传递给模型,以确定参数
真假
您可以选择设置自定义模型验证来完成它,这是官方的
下面是我的演示,希望能对你有所帮助
验证类别:
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;
}
}
控制器:
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Index(JobApplication jobApplication)
{
return View();
}
型号:
public class JobApplication
{
[RequiredEx("Tsai")]
public string Name { get; set; }
}
视图:
@模型作业应用程序
提交申请
.输入验证错误{
边框颜色:红色;
}
@节脚本{
@{wait Html.RenderPartialAsync(“_validationScript”);}
}
结果:
我不认为标准的
[必需的]
注释会允许这样的事情-但是你可以随时编写自己的自定义数据注释进行验证-例如,作为一个起点-或者只是在谷歌上搜索“C#编写自定义数据注释”-你会得到大量的链接,我不认为标准的[必需的]
annotation将允许类似的操作—但您始终可以编写自己的自定义数据批注进行验证—例如,作为起点—或者只需在谷歌上搜索“C#编写自定义数据批注”—您将获得大量链接