ASP.Net Core MVC - 自定义验证
Posted
技术标签:
【中文标题】ASP.Net Core MVC - 自定义验证【英文标题】:ASP.Net Core MVC - Custom validation 【发布时间】:2020-06-10 16:29:19 【问题描述】:我在 asp.net 上使用 Code First,我有以下课程:
public class Producto
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid ProductoId get; set;
[Remote(action: "VerifySku", controller: "Producto", ErrorMessage = "El sku ya está asignado a un producto")]
[DisplayName("SKU")]
public string Sku get; set;
[Required(ErrorMessage = "Seleccione categoría")]
[DisplayName("Categoria")]
public Guid SubCategoriaProductoId get; set;
[DisplayName("Categoria")]
public SubCategoriaProducto SubCategoriaProducto get; set;
public string Marca get; set;
[Required(ErrorMessage = "Ingrese nombre")]
[Remote(action: "VerifyName", controller: "Producto", ErrorMessage = "El producto ya existe")]
public string Nombre get; set;
public string Detalle get; set;
[Required(ErrorMessage = "Ingrese precio")]
public int Precio get; set;
public bool PorEncargo get; set;
[Remote(action: "VerifyStock", controller: "Producto", AdditionalFields = nameof(PorEncargo))]
public int Stock get; set;
[DefaultValue(1)]
public int EstaActivo get; set;
public virtual ICollection<ImagenProducto> Imagenes get; set;
我需要添加一个自定义验证,只要 PorEncargo 字段为 false,您就必须在其中 Require stock。 我在 ASP.Net Core 中没有找到任何方法。
【问题讨论】:
【参考方案1】:我需要添加一个自定义验证,只要 PorEncargo 字段为 false,您就必须在其中 Require stock。
public int Stock get; set;
从this doc,您可以发现.NET Core 3.0 及更高版本中的验证系统将不可为空的参数或绑定属性视为具有[Required]
属性。
通常,如果int
类型属性(例如Stock
)的输入大于0,而不是null
,则我们有效。
【讨论】:
以上是关于ASP.Net Core MVC - 自定义验证的主要内容,如果未能解决你的问题,请参考以下文章