Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据注释电话号码转换_C#_Regex_Asp.net Mvc 3_Data Annotations - Fatal编程技术网

C# 数据注释电话号码转换

C# 数据注释电话号码转换,c#,regex,asp.net-mvc-3,data-annotations,C#,Regex,Asp.net Mvc 3,Data Annotations,我想将用户输入的电话号码优雅地转换为特定的电话号码格式 我想用一个数据注释来转换它,就像 [dataType(dataType.Date)]将日期时间显示为字符串 即: 02059388472插入+612059338472 02 0593 8472插入+612059384472 0593 8472到+612059384472(我将假定区号来自何处 他们住在那里(如果是手机的话) 02-0593-8472插入+61205938472 等等,我还想转换另一个方向: +61205938472

我想将用户输入的电话号码优雅地转换为特定的电话号码格式

  • 我想用一个数据注释来转换它,就像
    [dataType(dataType.Date)]
    日期时间
    显示为
    字符串
即:

  • 02059388472插入+612059338472
  • 02 0593 8472插入+612059384472
  • 0593 8472到+612059384472(我将假定区号来自何处 他们住在那里(如果是手机的话)
  • 02-0593-8472插入+61205938472
等等,我还想转换另一个方向:

  • +61205938472(或我选择的任何格式)
我想这样做是为了提高用户的可读性,但在数据库中保留严格的数据类型

问题

  • 以这种方式使用dataAnnotation是否被视为不良做法
  • 我将如何实际编写dataAnnotation(/如何编写)?
    (请包括一些代码)
    编辑:为了澄清,我不希望有人为我编写扩展,我只想举一个关键代码和实现的例子 请注意

    • 这些国家是澳大利亚、新西兰和国际组织 存储为国际格式数字的数字
    • 和国际格式的数字转换为澳大利亚、新西兰或国际格式,具体取决于用户的位置(我可以确定)
  • 数据注释和数据类型用于验证,而不是转换值。数据类型的使用主要是为了让验证知道从哪里开始猜测
  • 2。这对编写这样一个扩展的人来说要求太高了,尤其是在没有表现出任何努力的情况下。

  • 数据注释和数据类型用于验证,而不是转换值。数据类型的使用主要是为了让验证知道从哪里开始猜测

  • 2。这对于编写这样的扩展来说要求太高了,尤其是在没有表现出任何努力的情况下。

    根据您使用的用户界面,您可能可以通过以下方式完成:

    • ASP.NET:(参见示例)
    • ASP.NET MVC:ModelBinder
    • WPF:
    • Windows窗体:
    由于解析和格式化通常发生在UI层,我怀疑您是否会找到一个在数据/模型层工作的解决方案,该解决方案可以普遍工作,或者可以做的不仅仅是验证


    在数据注释命名空间中,有一个可以附加到属性的注释。尽管您自己仍有责任使用适当的显示技术进行解析和格式化。

    根据您使用的用户界面,您可能可以通过以下方式完成此操作:

    • ASP.NET:(参见示例)
    • ASP.NET MVC:ModelBinder
    • WPF:
    • Windows窗体:
    由于解析和格式化通常发生在UI层,我怀疑您是否会找到一个在数据/模型层工作的解决方案,该解决方案可以普遍工作,或者可以做的不仅仅是验证


    在数据注释命名空间中,有一个可以附加到属性的注释。尽管您自己仍然负责使用适当的显示技术进行解析和格式化。

    您可以像这样使用DataTypeAttribute:

    [DataType(DataType.PhoneNumber)]
    public string PhoneNumber{get; set;}
    

    您可以使用DataTypeAttribute,如下所示:

    [DataType(DataType.PhoneNumber)]
    public string PhoneNumber{get; set;}
    

    我明白,我会澄清,我不是要求别人为我写扩展。我只是想要一些关于如何实现它的伪代码,正如您所说的,数据注释不用于转换值,那么您将如何做呢?验证只是为了确保结构有效(您可能希望研究使用
    regex数据注释
    )。这实际上取决于您的实现以及您“在数据库中保留严格的数据类型”的位置。这可能是在控制器或管理器类、服务、工厂、存储库等中。这些数据与数据库交互的地方就是需要进行转换或逻辑的地方。我理解,我会澄清,我不是要求别人为我写扩展。我只是想要一些关于如何实现它的伪代码,正如您所说的,数据注释不用于转换值,那么您将如何做呢?验证只是为了确保结构有效(您可能希望研究使用
    regex数据注释
    )。这实际上取决于您的实现以及您“在数据库中保留严格的数据类型”的位置。这可能在控制器或管理器类、服务、工厂、存储库等中。这些数据与数据库交互的位置就是需要进行转换或逻辑的位置。是的,但数据类型不用于数据验证(即使它们派生自ValidationAttribute)。奇怪,我知道。是的,但数据类型不用于数据验证(即使它们派生自ValidationAttribute)。奇怪,我知道。