C# 条件逻辑依赖于区域性设置。ASP.NET

C# 条件逻辑依赖于区域性设置。ASP.NET,c#,.net,asp.net,validation,C#,.net,Asp.net,Validation,我有很多页面,我需要验证那里的数据。如果文化例如“es es”,我应该使用一种验证逻辑,如果文化是“en US”,则使用另一种验证逻辑。例如,我需要验证电话号码。最小长度为11位。对于其他区域性9位数字。我该怎么做?某些模式或其他决定?您可以通过检查Thread.CurrentThread.CurrentCulture.Name来确定当前区域性。这就是您的意思吗?如果进行本地化,您应该使用附属程序集进行本地化-这还允许您设置特定于区域性的正则表达式以进行验证(电话号码格式等).如果我的浏览器设置

我有很多页面,我需要验证那里的数据。如果文化例如“es es”,我应该使用一种验证逻辑,如果文化是“en US”,则使用另一种验证逻辑。例如,我需要验证电话号码。最小长度为11位。对于其他区域性9位数字。我该怎么做?某些模式或其他决定?

您可以通过检查Thread.CurrentThread.CurrentCulture.Name来确定当前区域性。这就是您的意思吗?

如果进行本地化,您应该使用附属程序集进行本地化-这还允许您设置特定于区域性的正则表达式以进行验证(电话号码格式等).

如果我的浏览器设置为en US,因为我是美国公民,但我在西班牙有一个西班牙手机号码,那该怎么办?

我想你的问题是通过你自己定义的逻辑手动完成所有事情。这是最好的方法,使以后支持新文化更容易。不完全是这样。我的意思是如何实现特定区域性的验证逻辑;如果(文化==“es”){//做点什么}如果(文化==“en-US”){//做点别的}。然后,对于验证逻辑本身,我建议使用正则表达式,比如Oded。我就是这样做的。但我想用另一种方式来实现它,我想您可以在类中的某个地方创建一个静态常量字典(),以区域性作为键,以正则表达式作为值。然后,在验证代码中,您可以从字典中检索正确的表达式并使用它。我想这会给出“更干净”的代码(如果不是那么多的话)。我有野外文化。问题很好:)。