asp.net-mvc - MVC Core 2.1:找到多个相同类型的自定义属性
问题描述
我写了一个模型。我去脚手架控制器并收到以下错误:
找到多个相同类型的自定义属性。
我看了我的模型十几次,我没有在任何属性上看到重复的属性。我不确定这里发生了什么。
using Supplies.Web.Resources;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Supplies.Web.Models
{
public class Inventory
{
public Inventory()
{
this.IsActive = true;
}
[Column(TypeName = "int")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Key]
[ScaffoldColumn(false)]
public int Id { get; set; }
[Display(AutoGenerateField = false, AutoGenerateFilter = false, Description = "Is active.", Name = "IsActive", Prompt = "IsActive", ResourceType = typeof(PropNames), ShortName = "Is Active")]
[Required(AllowEmptyStrings = false, ErrorMessage = null, ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(SysMsg))]
public bool IsActive { get; set; }
[Column(TypeName = "varchar(250)")]
[DataType(DataType.Text)]
[Display(AutoGenerateField = false, AutoGenerateFilter = false, Description = "Item description.", Name = "ItemDescription", Prompt = "ItemDescription", ResourceType = typeof(PropNames), ShortName = "Item Description")]
[MaxLength(250)]
[MinLength(10)]
[Required(AllowEmptyStrings = false, ErrorMessage = null, ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(SysMsg))]
[StringLength(250, ErrorMessage = null, ErrorMessageResourceName = "LengthBetween", ErrorMessageResourceType = typeof(SysMsg), MinimumLength = 10)]
public string ItemDescription { get; set; }
[Column(TypeName = "varchar(50)")]
[DataType(DataType.Text)]
[Display(AutoGenerateField = false, AutoGenerateFilter = false, Description = "MFG.", Name = "MFG", Prompt = "MFG", ResourceType = typeof(PropNames), ShortName = "MFG")]
[MaxLength(50)]
[MinLength(2)]
[Required(AllowEmptyStrings = false, ErrorMessage = null, ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(SysMsg))]
[StringLength(50, ErrorMessage = null, ErrorMessageResourceName = "LengthBetween", ErrorMessageResourceType = typeof(SysMsg), MinimumLength = 2)]
public string MFG { get; set; }
[Column(TypeName = "int")]
[Display(AutoGenerateField = false, AutoGenerateFilter = false, Description = "Reorder level.", Name = "ReorderLevel", Prompt = "ReorderLevel", ResourceType = typeof(PropNames), ShortName = "Reorder Level")]
[Required(AllowEmptyStrings = false, ErrorMessage = null, ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(SysMsg))]
public int ReorderLevel { get; set; }
[Column(TypeName = "int")]
[Display(AutoGenerateField = false, AutoGenerateFilter = false, Description = "Reorder quantity.", Name = "ReorderQuantity", Prompt = "ReorderQuantity", ResourceType = typeof(PropNames), ShortName = "Reorder Quantity")]
[Required(AllowEmptyStrings = false, ErrorMessage = null, ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(SysMsg))]
public int ReorderQuantity { get; set; }
}
}
解决方案
我四处寻找,发现了一些可能有用的东西,现在它可以工作了。
您似乎不能同时使用 [DataType(DataType.EmailAddress)] 和 [EmailAddress]。
同样,[DataType(DataType.PhoneNumber)] 和 [Phone] 也是如此
您可以在 EF6 中执行此操作,但似乎 Core 不喜欢它?这太奇怪了。
[Column(TypeName = "varchar(128)")]
[DataType(DataType.EmailAddress)]
[Display(AutoGenerateField = false, AutoGenerateFilter = false, Description = "Email address.", Name = "EmailAddress", Prompt = "EmailAddress", ResourceType = typeof(PropNames), ShortName = "Email Address")]
//[EmailAddress]
[MaxLength(128)]
[MinLength(6)]
[Required(AllowEmptyStrings = false, ErrorMessage = null, ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(SysMsg))]
[StringLength(128, ErrorMessage = null, ErrorMessageResourceName = "LengthBetween", ErrorMessageResourceType = typeof(SysMsg), MinimumLength = 6)]
public string EmailAddress { get; set; }
推荐阅读
- python - 从图像中提取对象
- swiper - 刷卡忽略延迟
- java - 为什么 HashMap 实例的类类型与 HashMap.class 比较相等?
- c++ - 如何使用 boost::iostreams::filtering_wistream 读取 UTF-16LE 格式的 gz 文件?
- crystal-reports - Crystal Reports XI - Cannot edit Parameter Field
- haskell - 在 Haskell 中转义特殊字符
- node.js - MySQL X Dev API:session.sql 不是函数
- sql - 这个函数在做什么
- python - 为什么我的代码在读取 CSV 文件时会打印字典而不是列表?
- java - Spring Boot Job Scheduler fixedDelay 和 cron