C# 在ASP.NET MVC 3中,当在两个模型属性中使用相同的复杂类型时,如何生成变量错误消息
我有一个问题,我的电话号码类定义如下:C# 在ASP.NET MVC 3中,当在两个模型属性中使用相同的复杂类型时,如何生成变量错误消息,c#,asp.net,validation,asp.net-mvc-3,data-annotations,C#,Asp.net,Validation,Asp.net Mvc 3,Data Annotations,我有一个问题,我的电话号码类定义如下: public class TelephoneNumber { [Required(ErrorMessage = "Phone number area code is required")] public string AreaCode { get; set; } [Required(ErrorMessage = "Phone number first 3 digits are required")] public stri
public class TelephoneNumber
{
[Required(ErrorMessage = "Phone number area code is required")]
public string AreaCode { get; set; }
[Required(ErrorMessage = "Phone number first 3 digits are required")]
public string PhoneFirst3 { get; set; }
[Required(ErrorMessage = "Phone number last 4 digits are required")]
public string PhoneLast4 { get; set; }
}
在我的模型中,我有两个属性,其中每个属性都使用电话号码数据类型
[DisplayName("*Cell Phone")]
public TelephoneNumber CellPhone { get; set; }
[DisplayName("*Work Phone")]
public TelephoneNumber WorkPhone { get; set; }
我正在使用验证摘要,希望修改“需要电话号码区号”中的错误消息,以包括错误消息所指的电话号码。例如“需要工作电话号码区号”和“需要手机号码区号”
还可以添加新的电话号码类型,例如:
[DisplayName("Home Phone")]
public TelephoneNumber HomePhone { get; set; }
但不需要家庭电话吗
这是我的实现的简化版本,但是如果可以更改或设置复杂类型属性的数据注释,以便在同一个模型中包含的多个属性中配置不同的验证注释,那么在创建比简单电话更复杂的类时,这将使工作更轻松号码
谢谢。这是设计问题吗?电话号码、工作电话号码和手机号码是可能从抽象电话号码类继承的不同类 这将允许您在必要时注释每种类型的电话号码。我还将指定正则表达式来验证每个数字的格式 要考虑的事情是,如果有一天我说工作电话号码应该有分机和分机号码,会发生什么
查找单一责任原则,这可能会有所帮助。祝你好运。我试图简化示例,将讨论从设计转移开。我同意你所说的一切,但这并不能回答我的任何问题。例如,如果我有家庭电话1和家庭电话2,但只需要一个。我该如何处理这种情况?