c# - ASP.Net Core MVC - 自定义验证
问题描述
我在 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字段为假,您就必须在其中要求库存。我还没有在 ASP.Net Core 中找到任何方法。
解决方案
我需要添加一个自定义验证,只要 PorEncargo 字段为假,您就必须在其中要求库存。
public int Stock { get; set; }
从此文档中,您可以发现.NET Core 3.0 及更高版本中的验证系统将不可为空的参数或绑定属性视为具有[Required]
属性。
通常,如果int
类型属性(例如Stock
)的输入大于 0,而不是,我们将有效null
。
推荐阅读
- android - 我如何显示,使用底部导航视图在中心添加 fab 图标
- java - 如何设置与其放置的框架相关的 JButton 大小?
- c# - 在 C# 中使用 MATLAB 生成的 DLL
- typescript - 自定义对象验证在 Nestjs DTO 中不起作用
- python - 为什么我的渲染在 panda3d 中渲染时会出现条纹阴影?
- arrays - 为什么数组连接会在 TypeScript 中引发错误?
- python - 如何将元组列表更改为相同的元组?[Python]
- rust - GTK Iconview showing GIF
- wordpress - Wordpress 'posts_per_page' not working on global $wp_query on front-page.php
- angular - Angular image tag (button) disabled not working as expected